$arr = array (
0 => array(
'id' => 1,
'name' => 'john'
),
1 => array(
'id' => 4,
'name' => 'elisabeth'
)
);
假設我們知道的是內部數組的'id',那麼搜索$ arr元素的最佳方式是什麼?它包含一個包含我們的id的數組?php兩層陣列鍵搜索
$arr = array (
0 => array(
'id' => 1,
'name' => 'john'
),
1 => array(
'id' => 4,
'name' => 'elisabeth'
)
);
假設我們知道的是內部數組的'id',那麼搜索$ arr元素的最佳方式是什麼?它包含一個包含我們的id的數組?php兩層陣列鍵搜索
function search($id)
{
foreach ($arr as $item) {
if (isset($item['id']) && $item['id'] == $id) {
return $item; // or whatever you want to return
}
}
}
UPDATE:
function search($id)
{
foreach ($arr as $key => $item) {
if (isset($item['id']) && $item['id'] == $id) {
return $key; // Return key...
}
}
}
$arr = array (
0 => array(
'id' => 1,
'name' => 'john'
),
1 => array(
'id' => 4,
'name' => 'elisabeth'
)
);
foreach($arr as $a)
if($a["id"] == 4)
echo $a["name"];
使用array_filter
$arr = array (
0 => array(
'id' => 1,
'name' => 'john'
),
1 => array(
'id' => 4,
'name' => 'elisabeth'
)
);
$id = 1;
$result = array_filter($arr, function($el) use ($id) {
return $el['id'] == $id;
});
echo '<pre>', var_dump($result), '</pre>';
$array = array(
0 => array(
'id' => 1,
'name' => 'john'
),
1 => array(
'id' => 4,
'name' => 'elisabeth'
)
);
$search = 4;
$result = null;
array_walk(
$array,
function ($element) use ($search, &$result) {
if (isset($element['id']) && (int)$element['id'] === (int)$search) {
$result = $element;
}
}
);
var_dump($result);
和'返回false;'如果沒有找到 – Waygood 2013-03-19 16:06:42
酵母或返回null – Populus 2013-03-19 16:26:44
是啊,但我需要該元素的關鍵字,例如id = 4會返回1和i d = 1返回0 – Benedictus 2013-03-19 18:20:38