2013-03-30 6 views
0

У меня есть ассоциативный массив, который выглядит следующим образом:Комбинирование и значения сумм в многомерном ассоциативный массив с помощью PHP

Array (
    [0] => Array (
     [amount] => 3 
     [name] => Chuck 
    ) 
    [1] => Array (
     [amount] => 2 
     [name] => Steve 
    ) 
    [2] => Array (
     [amount] => 5 
     [name] => 
    ) 
    [3] => Array (
     [amount] => 4 
     [name] => Chuck 
    ) 
    [4] => Array (
     [amount] => 
     [name] => Chuck 
    ) 
) 

Мне нужно удалить значения, которые отсутствуют имя или количество, например, [2] и [4], а затем подвести итоги для каждого имени, так что конечный массив:

Array (
    [0] => Array (
     [amount] => 7 
     [name] => Chuck 
    ) 
    [1] => Array (
     [amount] => 2 
     [name] => Steve 
    ) 
) 
+0

Вы пытались его кодировать? –

ответ

0

Попробуйте это:

$starting_array = array(...); // Initial array with your setup 
$final_array = array(); 
$sum = 0; 

foreach ($starting_array as $idx => $data) { 
    if (!empty($data['amount']) && !empty($data['name'])) { 
    $final_array[$idx] = $data; 
    $sum += $data['amount']; 
    } 
} 

// After looping through all of the items, $final_array should contain all 
// of the specific items that have an amount and name set. In addition, the 
// total of all of the amounts will be in $sum. 

Посмотрите на РНР empty(). Примечание. Если 0 является допустимым значением, вы можете вместо этого использовать is_null().

+0

Спасибо Aiias, который работал для очистки массива. Что делает $ idx = $ data? Это похоже на значение $ key => $? Кроме того, есть ли у вас какие-либо рекомендации по суммированию значений для каждого имени? Еще раз спасибо. –

+0

@CameronMacfarlane - В цикле php 'foreach' вы просматриваете все элементы массива. Когда вы используете синтаксис 'foreach ($ ARRAY as $ KEY => $ VALUE)', вы получите ключ каждого элемента и его соответствующее значение (в этом ключе: например $ ARRAY [$ KEY] = $ VALUE' для каждого '$ KEY'). Я бы определенно рекомендовал более подробно ознакомиться с ['foreach'] php [http://php.net/manual/en/control-structures.foreach.php) для более полного объяснения. Что касается суммирования значений для каждого имени, проверьте мое редактирование. – Aiias

+0

Привет, Aiias, еще раз спасибо. Я понимаю, как значение $ key => $ работает в цикле foreach. Я просто спрашивал, что $ idx => $ данные одинаковы, я никогда не видел этого синтаксиса. Кроме того, я хотел бы суммировать значения для каждого имени, против общего количества всех. Я попробовал редактирование, это не сработало для суммирования суммы имен. –

 Смежные вопросы

  • Нет связанных вопросов^_^