如何使用PHP从多维数组中搜索值

时间:2015-06-19 09:21:39

标签: php multidimensional-array

Array ( 
       [0] => Array ( 
                       [id] => 13137 
                       [meta_value] => Chris 
                       [field_id] => 104 
                       [item_id] => 4413 
                       [created_at] => 2015-06-17 17:00:21
                    ) 
       [1] => Array ( 
                       [id] => 13136 
                       [meta_value] => 0.10 
                       [field_id] => 123 
                       [item_id] => 4413 
                       [created_at] => 2015-06-17 17:00:21 
                    )
      );

我如何访问meta_value(Chris),其中field_id = 104?

3 个答案:

答案 0 :(得分:3)

利用array_search功能

 $key = array_search(104, array_column($array, 'field_id'));
 if($key !== false)
 {
       echo $array[$key]['meta_value'];
 }

Demo

答案 1 :(得分:0)

试试这个

Cannot add or update a child row: a foreign key constraint fails (`arasdb`.`saledetail`, CONSTRAINT `FK_saledetail_1` FOREIGN KEY (`saleid`) REFERENCES `sale` (`saleid`) ON DELETE CASCADE ON UPDATE CASCADE)

的print_r($值);

其中$ array是您具有上述值的变量,

答案 2 :(得分:0)

要使代码可重用,您可以定义一个函数,如下所示:

<?php
$array = [
    ['id' => 13137, 'meta_value' => 'Chris', 'field_id' => 104, 'item_id' => 4413, 'created_at' => '2015-06-17 17:00:21' ],
    ['id' => 13136, 'meta_value' => 0.10,    'field_id' => 123, 'item_id' => 4413, 'created_at' => '2015-06-17 17:00:21' ],
];

function getMetaValue($arr, $field_id) {
    foreach($arr as $subArr)
        if($subArr['field_id']==$field_id)
            return $subArr['meta_value'];
    return null;
}

echo getMetaValue($array, 104); // Chris
echo getMetaValue($array, 123); // 0.10
?>