数组格式如下:
Array
(
[0] => Array
(
[0] => ID
[1] => Nickname
) [1] => Array
(
[0] => 29
[1] => Test1
) [2] => Array
(
[0] => 654
[1] => Xxx1
))比如要找到ID=29的这条记录,我现在是使用foreach遍历数组
foreach($array as $value){
if($value[0]==29)
{
//判断条件成立,进行相关操作
}
}
请问还有没有更高效的方法?可能有人说用in_array函数,但是假如记录中除了id为29的外,nickname这个键值也有可能会出现29的情况,用这个函数查询就会有问题。
Array
(
[0] => Array
(
[0] => ID
[1] => Nickname
) [1] => Array
(
[0] => 29
[1] => Test1
) [2] => Array
(
[0] => 654
[1] => Xxx1
))比如要找到ID=29的这条记录,我现在是使用foreach遍历数组
foreach($array as $value){
if($value[0]==29)
{
//判断条件成立,进行相关操作
}
}
请问还有没有更高效的方法?可能有人说用in_array函数,但是假如记录中除了id为29的外,nickname这个键值也有可能会出现29的情况,用这个函数查询就会有问题。
in_array不行那用array_keys($array, 29)或者array_search(29,$array)
$array = array(0 => array('id', 'name'), array('29', 'test'), array('65', '29'));
array_walk($array, $theValue = 'checkvalue', 29);if ($theValue == true) {
echo 'ok';
}
function checkvalue($value, $key, $number)
{
if ($value[0] == $number) {
//something
return true;
}
}
实际测试 速度要远远快于用foreach比较值.
xdebug 或者 php自带的时间函数 产生一个原始时间一个结束时间求差值...
少壮不努力newnew徒伤悲...其实,我觉得应该有更好的做法,等那个怪署黍过了年来给大家上课。
$trueFalse=false;
$array = array(0 => array('id', 'name'), array('29', 'test'), array('65', '29'));
array_walk($array,'checkvalue', 29);
echo $trueFalse;
function checkvalue($value, $key, $number)
{
global $trueFalse;
if ($value[0] == $number) {
//something
$trueFalse=true;
return true;
}
}