php array_sum для ассоциативного массива

#php #arrays #multidimensional-array

#php #массивы #многомерный массив

Вопрос:

У меня есть ассоциативный массив (динамический — может иметь больше массивов, но те же ключи):

   Array
 (
    [food] => Array
      (
        [0] => 3
        [1] => 4
        [2] => 1
      )

     [liquor] => Array
       (
         [0] => 4
         [1] => 5
         [2] => 0
       )

     [beer] => Array
      (
        [0] => 5
        [1] => 6
        [2] => 0
      )

  )
  

Мне нужно использовать array_sum для каждого массива, чтобы результат был:

 Array ( [food] => 8, [liquor] => 9, [beer] => 11 )
  

Спасибо!

Ответ №1:

 $result = array_map('array_sum', $your_array);
  

Пример: http://ideone.com/LqTAV

Комментарии:

1. array_sum необходимо заключить в кавычки, не полагайтесь на отображение неопределенной константы в строку ( 1 для правильной идеи).

2. Я тоже получаю ошибку: Обратите внимание: использование неопределенной константы array_sum — предполагается ‘array_sum’, но array_map — полезно знать.

3. @hakre — я предпочел просто исправить, чтобы его цитировали после расширенного комментария Алекса; пожалуйста, прекратите путаться с ответом. >. <

4. us.php.net/array_map — сигнатура функции имеет a $callback в качестве первого параметра. Смотрите us.php.net/manual/en /… — «Функция PHP передается по ее имени в виде строки». В большинстве сред оставить его без кавычек не будет проблемой, но для максимальной совместимости кавычки являются правильными.

5. @artlung: Я бы сказал, что никогда не стоит передавать его без кавычек.