Никак не могу разобраться как посчитать сумму элементов массива, имеющих разные ключи, но имеющих одинаковые ключи в вложеном массиве. Пример: Код (Text): array(10[1] => 5, 10[2] => 7, 11[1] => 8, 11[2] => 9); Нужно получить сумму эллементов и индексом [2], т.е. в примере сумму 7+9 Помогите!
слабо понял PHP: <?php $r=array(array(5,7), array(9,9)); foreach($r as $key => $val) echo $key.' — '.array_sum($val).'<br />'; ?> это что ли?
Тоже слабо понял. Может быть так: PHP: <? for ($i=0;$i<sizeof($array);$i++) { $res += $array[$i][2]; } echo $res; ?> UPD: Вернее понял нормально, но не уверен в верности подхода .
Короче, есть массив с кучей ключей, ключи - стринговые, выбирать их просто инкрементом одной переменной не получится. Каждому ключу в этом массиве соответствует вложеный массив, состоящий из двух ключей. Так вот, задача: взять массив с кучей ключей, из всех этих ключей большого массива взять значения второго ключа во вложеном массиве каждого ключа большого массива, и суммировать их. Типа: Код (Text): array_big("Ключ1"[1] => 3, "Ключ1"[2] => 5, "Ключ какой-то"[1] => 7, "Ключ какой-то"[2] => 4 и т.д.....); Нужен скрипт, который брал бы значения вторых ключей вложеных массиво из всех ключей массива array_big и суммировал их. P.S. Kreker Кажется проблему можно решить другим путем - если можно как-нибудь получить ввиде массива список ключей из моего массива.
вот это — не массив, а сплошное недорозумение. PHP: <?php $r=array('string1'=>array(5,7), 'string2'=>array(9,9)); $sum=0; foreach($r as $key => $val){ $sum += $val[1]; } echo $sum; ?> * были бы права — в блонднки перенёс бы за одну формулировку*
Угу, я забыл как выглядит структура массива с вложеными массивами Большое спасибо Единственное - имена ключей стринговых заранее неизвестны, т.е. перечислять их низя. Я решил проблему так: PHP: <?php $r=array('string1'=>array(5,7), 'string2'=>array(9,9)); $ak = array_keys($r); $sum=0; foreach ($ak as $aks) { $sum += $r[$aks][2]; } print $sum; ?> Всем спасибо
Ну, всмысле что их нельзя записать вручную, они изменяются. Ладно, вопрос был ламерский - решается с помощью стандартной функции array_keys и цикла foreach, всё уже работает =)
Хе) Изначально в моем варианте был foreach. Потом увидел, что у автора индексный массив и заменил на for.
Не понятно как работает код PHP: <?php $r=array('string1'=>array(5,7), 'string2'=>array(9,9)); $ak = array_keys($r); $sum=0; foreach ($ak as $aks) { $sum += $r[$aks][2]; } print $sum; ?> ? В массиве $r к каждому ключу относится по два значения (вложеный массив), при этом названия ключей в массиве $r не известны. Требовалось получить сумму вторых значений вложеных массивов из массива $r. Для этого функцией array_keys в массив $ak записывается массив - список ключей в массиве $r. Потом с помощью цикла foreach ($ak as $aks) к перемнной $sum приплюсовывется значение 2 вложеного массива из массива $r, а ключь к вложеному массиву в массиве $r подставляется из массива $ak, в котором содержится заранее взятый список ключей из массива $r.
[vs] foreach отлично справляется с перебором ключей массива. И известны они или нет — не важно. $r[$aks][2] — это третий элемент
ЕЩЕ РАЗ! Я УВИЖУ ТЕБЯ! В РАЗДЕЛЕ ПРОГРАММИРОВАНИЕ НА PHP! С ДУРАЦКИМИ ВОПРОСАМИ! ЗАБАНЮ НАХЕР! Моя жизнь, особенно в утро выходного дня, вовсе не сводится к желанию подтирать вам попку и переносить все в нужный раздел!
Сорри, тот код не работает Работает этот: PHP: <?php $r=array("key1" => array (5,3), "key2" => array(9,9)); $ak = array_keys($r); $sum=0; foreach ($ak as $aks) { $sum += $r[$aks][1]; } print $sum; ?> Да вопрос не в этом был!! Вопрос был изначально, фактически, как получить значения из масства из элементов вложенного массива, если ключи к ним этим вложеным массивам стринговые и заранее не известны!!! Вопрос решился когда прочитал про функцию array_keys, всё, проблемы нет //
Каким образом то решение не работает? PHP: <?php $r = array('string1' => array(5, 7), 'string2' => array(9, 9)); $sum = 0; foreach($r as $v){ $sum += $v[1]; } echo $sum; Печатает Код (Text): 16