У меня есть переменная массива $ data, и я пытаюсь отсортировать ее по алфавиту. Я прохожу цикл foreach и пытаюсь разобраться в ключе.
Массив в середине не сортируется, чтобы соответствовать другим массивам. Визг должен быть последним, вместо DealerRater показывается последним.
Я пытаюсь это:
foreach ($data as $key=>$value) {
ksort($key);
}
My $ data Array:
Array
(
[1] => Array
(
[Cars.com] => Array
(
[rooftop_id] => 1
[rooftop_name] => Norm Reeves Honda - Cerritos
[name] => Cars.com
[review_site_id] => 30
[review_count] => 289
[review_average] => 4.80
)
[Dealer Rater] => Array
(
[rooftop_id] => 1
[rooftop_name] => Norm Reeves Honda - Cerritos
[name] => Dealer Rater
[review_site_id] => 10
[review_count] => 1231
[review_average] => 4.90
)
[Google+ Local] => Array
(
[rooftop_id] => 1
[rooftop_name] => Norm Reeves Honda - Cerritos
[name] => Google+ Local
[review_site_id] => 31
[review_count] => 556
[review_average] => 4.80
)
[Yelp] => Array
(
[rooftop_id] => 1
[rooftop_name] => Norm Reeves Honda - Cerritos
[name] => Yelp
[review_site_id] => 29
[review_count] => 423
[review_average] => 3.50
)
)
[45] => Array
(
[Cars.com] => Array
(
[rooftop_id] => 45
[rooftop_name] => Leith Volkswagen of Raleigh
[name] => Cars.com
[review_site_id] => 30
[review_count] => 95
[review_average] => 4.90
)
[Google+ Local] => Array
(
[rooftop_id] => 45
[rooftop_name] => Leith Volkswagen of Raleigh
[name] => Google+ Local
[review_site_id] => 31
[review_count] => 21
[review_average] => 4.80
)
[Yelp] => Array
(
[rooftop_id] => 45
[rooftop_name] => Leith Volkswagen of Raleigh
[name] => Yelp
[review_site_id] => 29
[review_count] => 3
[review_average] => 1.50
)
[Dealer Rater] => Array
(
[rooftop_id] => 45
[rooftop_name] => Leith Volkswagen of Raleigh
[name] => Dealer Rater
[review_site_id] => 10
[review_count] => 0
[review_average] => 0
)
)
[56] => Array
(
[Cars.com] => Array
(
[rooftop_id] => 56
[rooftop_name] => Wilde Jaguar Of Sarasota
[name] => Cars.com
[review_site_id] => 30
[review_count] => 34
[review_average] => 4.70
)
[Dealer Rater] => Array
(
[rooftop_id] => 56
[rooftop_name] => Wilde Jaguar Of Sarasota
[name] => Dealer Rater
[review_site_id] => 10
[review_count] => 271
[review_average] => 4.90
)
[Google+ Local] => Array
(
[rooftop_id] => 56
[rooftop_name] => Wilde Jaguar Of Sarasota
[name] => Google+ Local
[review_site_id] => 31
[review_count] => 31
[review_average] => 4.70
)
[Yelp] => Array
(
[rooftop_id] => 56
[rooftop_name] => Wilde Jaguar Of Sarasota
[name] => Yelp
[review_site_id] => 29
[review_count] => 1
[review_average] => 1.00
)
)
)
Вы сортируете неправильное значение. Сделай это:
foreach ($data as $key=>$value) {
ksort($value);
}
$key
это индекс основного массива. $value
это элемент массива, который вы хотите отсортировать. Было бы больше смысла, если бы вы назвали свои переменные более логично, например так:
foreach ($data as $index=>$element) {
ksort($element);
}
Или это для краткости:
foreach ($data as $element) {
ksort($element);
}
Других решений пока нет …