ALL(Hours[Date])
以上代码抛出空值。
答案 0 :(得分:1)
array_search(2, array_column($arr, 'id', 'name'));
就是答案。你试过的时候
array_search(2, array_column($arr, 'name', 'id'));
您将密钥作为针传递,而array_search在值中搜索needle,然后返回匹配值的键。
您可以根据array_column
中的要求更改关键位置答案 1 :(得分:0)
对于多维数组,您必须使用foreach
$arr = array(0=>array('id'=>1, 'name'=>'emp1'), 1=>array('id'=>2,
'name'=>'emp2'), 2=>array('id'=>3, 'name'=>'emp3'));
foreach ($arr as $key => $val) {
if ($val['id'] == "2") {
echo "id matched";
echo $key; //if you want array key (1)
echo $val['id']; // if you want 2's id (2)
echo $val['name']; // if you want name (emp2)
}
}
答案 2 :(得分:0)
注意:对于PHP> = 5.5.0
我猜您希望 emp2 作为上述代码的输出。
在这里, array_column($ arr,' name',' id')将生成如下数组:
Array
(
[1] => emp1
[2] => emp2
[3] => emp3
)
现在,由于 array_search()将搜索值,您需要使用您的数组:
Array
(
[emp1] => 1
[emp2] => 2
[emp3] => 3
)
因此,在 array_column()中切换键。
试试,
$arr = array(0=>array('id'=>1, 'name'=>'emp1'), 1=>array('id'=>2, 'name'=>'emp2'), 2=>array('id'=>3, 'name'=>'emp3'));
echo array_search(2, array_column($arr, 'id', 'name'));
答案 3 :(得分:0)
你可以试试这个。只需在id -
之后重新排列名称$arr = array(0=>array('id'=>1, 'name'=>'emp1'), 1=>array('id'=>2, 'name'=>'emp2'), 2=>array('id'=>3, 'name'=>'emp3'));
echo array_search(2, array_column($arr, 'id', 'name'));