基本上我有这个数组:
array(
[0] => array("id" => "0", "header" => "img1"),
[1] => array("id" => "4", "header" => "img4")
[2] => array("id" => "6", "header" => "img6")
)
如果我有$ id =“4”,如何提取索引[1]以获得“标题”值?
答案 0 :(得分:1)
你会想要为此做一个foreach循环。但老实说,如果你比单纯的isset测试更好地构建你的数组索引,然后在验证它之后获取值。
正确的方式:
$headers = array(0 => 'img1', 4 => 'img4', 6 => 'img6');
if (isset($headers[$index])) {
return $headers[$index];
}
以下是如何使用您的阵列处理它(从处理角度来看,成本更高):
$headers = array(
0 => array("id" => "0", "header" => "img1"),
1 => array("id" => "4", "header" => "img4"),
2 => array("id" => "6", "header" => "img6")
);
foreach ($headers AS $value) {
if ($value['id'] == $index) {
return $value['header'];
}
}
答案 1 :(得分:0)
foreach ($array as $key => $value) {
if ($value['id'] == '4') {
echo $value['header'];
break;
}
}
最好像这样存储id
和header
:
array(
"0" => "img1",
"4" => "img4",
"6" => "img6",
);
答案 2 :(得分:0)
PHP中的数组实际上是幕后的哈希表,因此按键访问元素的速度非常快。如果可以,请更改在源处创建数组的方式,以使用id
(我认为是唯一的)作为键,如其他答案中已提到的那样。
要将当前数组转换为id
的索引,您可以使用以下代码:
$indexed = array();
foreach($array as $element) {
$indexed[$element['id']] = $element['header'];
}
// $indexed now resembles id => header
然后,您可以使用header
$indexed[$id]
个值