【问题标题】:PHP Searching multidimensional associative arrayPHP搜索多维关联数组
【发布时间】:2014-08-12 00:01:58
【问题描述】:

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

 $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

}

那么最好的方法是什么。

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

艾玛

【问题讨论】:

    标签: php search multidimensional-array associative-array


    【解决方案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】:

      遍历数组的维度并在找到键时更改值

      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

      【讨论】:

        【解决方案3】:

        你的数组

        $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

        【讨论】:

        • 为什么在当前数组中使用in_array??
        • @Brotheyura 是的,你是对的。其实不需要。 +1 指出我的问题
        猜你喜欢
        • 1970-01-01
        • 2020-04-16
        • 1970-01-01
        • 2016-03-28
        • 2014-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多