PHP - 检查多维数组的值

时间:2014-07-06 14:10:36

标签: php arrays multidimensional-array

我有一个像这样的多维数组:

$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;

但它没有输出任何东西。谁能引导我走向正确的方向?

4 个答案:

答案 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);