PHP搜索多维关联数组

时间:2014-06-21 10:21:33

标签: php search multidimensional-array associative-array

我正在尝试搜索多维关联数组并在搜索后更改值。这是我的数组的样子

 $arr=Array ( [0] => Array ( [1] => 
    Array ( [keyword] => 2014 
            [count] => 97 
            [percent] => 4.91 )))

所以我要做的是搜索关键字,如果找到,则增加找到关键字的特定索引的计数。

所以我想尝试做类似的事情:

if(in_array("2014", $arr))
{
//then add 100 to count that is 100+97

}

那么最好的方法是什么呢。

注意:我正在尝试搜索数组中的值,如果找到,则更新该特定索引上的count键值。最后一部分和第一部分一样重要。

艾哈迈尔

3 个答案:

答案 0 :(得分:1)

遍历数组的维度,如果找到键

,则更改值
foreach ($arr as $key => $val) {
    foreach ($arr[$key] as $keyy => $val) {
        foreach ($arr[$key][$keyy] as $keyyy => $val) {
            if($arr[$key][$keyy]['keyword'] == 2014){
                $arr[$key][$keyy]['count'] = $arr[$key][$keyy]['count']+100;
                break;
            }
        }          
    }       
}

希望它有所帮助; D

答案 1 :(得分:1)

您可以使用该代码:

$arr = Array(
    0 => Array(
        1 => Array(
            'keyword' => 2014,
            'count' => 97,
            'percent' => 4.91
        )
    )
);

foreach ($arr as &$arr1) {

    foreach ($arr1 as &$arr2) {

        if (2014 == $arr2['keyword']) {
            $arr2['count'] += 100;
        }

    }
}

unset($arr2, $arr1);

结果:

array(1) {
  [0]=>
  array(1) {
    [1]=>
    array(3) {
      ["keyword"]=>
      int(2014)
      ["count"]=>
      int(197)
      ["percent"]=>
      float(4.91)
    }
  }
}

答案 2 :(得分:0)

你的数组

$arr=array( "0" => array( "1" => 
    array( "keyword" => 2014 ,
            "count" => 97, 
            "percent" => 4.91 ),
  "2"=> array( "keyword" => 2015,
            "count" => 5, 
            "percent" => 4.91 )));

代码

foreach($arr as $key => &$val) {

    foreach($val as $mm => &$aa) {

        if("2014" == $aa['keyword']) {

            $aa["count"] =  $aa["count"]+ 100;
        }
    }
}

print_r($arr);

沙盒网址:http://sandbox.onlinephpfunctions.com/code/fc2fd3a5bd3593c88efdb50c4a57b0812a7512c9