Я пытаюсь найти многомерный ассоциативный массив и изменить значение после поиска. Вот как выглядит мой массив
$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 }
Так что будет лучшим способом для этого.
Примечание. Я пытаюсь выполнить поиск значения в массиве, и если он будет найден, обновите значение счетчика на этом конкретном индексе . Последняя часть так же важна, как и первая.
Ахмар
вы можете использовать этот код:
$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) } } }
итерации по размерам массива и изменения значения, если вы нашли ключ
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; } } } }
надеюсь, что это поможет;
Ваш массив
$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);
URL-адрес Sandbox: http://sandbox.onlinephpfunctions.com/code/fc2fd3a5bd3593c88efdb50c4a57b0812a7512c9