Вы можете использовать array_column, чтобы сделать массив ассоциативным.
Это означает, что он также будет перезаписывать любые дублирующиеся массивы.
Затем просто array_values, чтобы вернуть его к исходным индексированным ключам.
$arr = array_values(array_column($arr, NULL, "ean"));
Редактировать: я вижу, что вам нужны клавиши 25 и 36.
Код выше даст вам 20 и 25.
Чтобы получить ожидаемый результат, сначала нужно отсортировать массив, чтобы сделать его задом наперед.
rsort($arr);
$arr = array_values(array_column($arr, NULL, "ean"));
array_column создаст массив, подобный этому:
[**6900532615069**] => Array
(
[ean] => **6900532615069**
[productPrice] => 1140
[productCount] => 50
)
[6900535364122] => Array
(
[ean] => 6900535364122
[productPrice] => 1140
[productCount] => 50
)
[**6900532615069**] => Array
(
[ean] => **6900532615069**
[productPrice] => 1140
[productCount] => 10
)
Но так как может быть только один массив с одинаковым ключом, второй массив перезапишет первую запись:
[6900535364122] => Array
(
[ean] => 6900535364122
[productPrice] => 1140
[productCount] => 50
)
[**6900532615069**] => Array
(
[ean] => **6900532615069**
[productPrice] => 1140
[productCount] => 10
)
Если вы сначала используете rsort()
, он удалит другой массив.
Array_values затем удалит «ean» из массива, сделав его 0,1,2 ...
рабочий код https://3v4l.org/sfPQr
если массив не отсортирован, вам нужно сначала отсортировать массив в productcount.
usort($arr, function ($a, $b) {
return $b['productCount'] - $a['productCount'];
});
$arr = array_values(array_column($arr, NULL, "ean"));
var_dump($arr);
https://3v4l.org/WZKLB