我有一个像这样的多维数组:
$pover =
Array
(
[0] => Array
(
[item_name] => "iPhone 5s Repair"
[service_name] => "Touchscreen & LCD repair"
[service_price] => 49.99
)
[1] => Array
(
[item_name] => "iPhone 5C Repair"
[service_name] => "Power button replacement"
[service_price] => 29.99
)
)
现在我有两个值:
$item = 'iPhone 5s Repair';
$service = 'Touchscreen & LCD repair';
现在我首先要检查项目$item
是否在数组中,然后获取service_price
并在页面上显示它。我尝试使用iPhone 5s Repair
array_search
$key = array_search($ititle, $pover);
echo $key;
但它没有输出任何东西。谁能引导我走向正确的方向?
答案 0 :(得分:0)
你必须自己搜索阵列,别无他法。
<?php
foreach ($pover as $delta => $record) {
if ($record["item_name"] === $ititle) {
$key = $delta;
break;
}
}
答案 1 :(得分:0)
尝试循环搜索您的项目。
// The value of what you're searching for
$title = 'iPhone 5s Repair';
for($i=0;$i<count($pover);$i++) {
$item = $pover[$i]['item_name'];
// Foreach item in the array, see if it's one of the ones that you need
if($title == $item) {
$price = $pover[$i]['service_price'];
$service = $pover[$i]['service_name'];
echo "Found at ".$i."<br />";
echo "The price for the ".$item." is ".$price."<br />";
}
}
答案 2 :(得分:0)
array_search()
不为多维数组工作我很害怕。你能做的最好就是自己浏览数组。
foreach ($pover as $key => $value) {
if ($value["item_name"] == "YOUR_TITLE") {
/* Item found */
}
}
答案 3 :(得分:0)
为了好玩,使用PHP 5.5中添加的最新array_column()函数的替代选项(在https://github.com/ramsey/array_column有旧版PHP的用户态实现):
<?php
function getPrice($item, $array) {
$array = array_values($array);
$column = array_column($array, 'item_name');
if (in_array($item, $column)) {
return $array[array_search($item, $column)]['service_price'];
}
return false;
}
print getPrice($item, $pover);