Сортировка ключей внутри каждой строки двумерного массиваPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сортировка ключей внутри каждой строки двумерного массива

Сообщение Anonymous »

Как бы вы отсортировали индексы многомерного массива?

У меня есть такая структура массива

Код: Выделить всё

Array
(
[Amie] => Array
(
[0] => Amie
[1] => 10
[3] => 10.9%
[4] => 0.0
[5] => 14.3
[6] => 2.4
[7] => 1510.4
[8] => 209.7
[9] => 0
[10] => 0.0
[11] => 0
[12] => 0.0
[13] => 0.0
[14] => 0.0%
[15] => 6
[17] => 100.0%
[18] => 0.0%
[2] => 1
)

[Darren D] => Array
(
[0] => Darren D
[1] => 20
[3] => 3.6%
[4] => 0.5
[5] => 0.0
[6] => 0.0
[7] => 2148.6
[8] => 193.6
[9] => 0
[10] => 0.0
[11] => 27418.4
[12] => 6854.6
[13] => 2.0
[14] => 2.8%
[16] => 2
[17] => 0.0%
[18] => 100.0%
[2] => 0
)
}
Индекс 2 находится в последней позиции каждого массива. Он последний, потому что я добавляю значение в конце работы с массивом и присваиваю индексный ключ 2.

Массив создается с использованием этого:

Код: Выделить всё

    foreach($combinedArray as $agent) {
// @Debug
// echo 'AGENTS'.'
'; print_r($agents); echo '';
if(!isset($agents[$agent[0]])) {
//Never met the agent, add them.
$agents[$agent[0]] = $agent;
} else {
//We already seen the agent, do maths.
$agents[$agent[0]][1] += $agent[1];
if(isset($agent[2]) && isset($agents[$agent[0]][2])) {
$agents[$agent[0]][2] += $agent[2];
} else if(isset($agent[2])) {
$agents[$agent[0]][2] = $agent[2];
}
$agents[$agent[0]][7] += $agent[7];
$agents[$agent[0]][9] += $agent[9];
$agents[$agent[0]][11]+= $agent[11];
}

}
Затем, если индекс 2 все еще отсутствует, я передаю весь массив в отдельную функцию, используя

Код: Выделить всё

 $newArray = $this->missingKeyValueFiller($agents);

private function missingKeyValueFiller($array) {
foreach ($array as $key => $value) {
if(!isset($value[2])) {
$array[$key][2] = 0;
}
}
return $array;
}
Это гарантирует, что конечный массив всегда будет иметь индекс 2 с некоторым значением внутри.

Я пробовал использовать ksort(), asort(), multisort(), но индекс 2 все еще появляется в конец.

Подробнее здесь: https://stackoverflow.com/questions/315 ... a-2d-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»