#php
#php
Вопрос:
Как просто изменить этот массив, чтобы сначала отображалась последняя запись, а другие записи располагались одна за другой в обратном порядке.
Я пытался $MyArray=array_reverse($MyArray,true);
, но он перемещается только "status": "ok"
сверху, а все остальные записи внутри products
массива остаются неизменными. Итак, как я могу отменить записи products
только массива, а не "status": "ok"
?
{
"product": [{
"IDs": ["00000087102110"],
"Brand": "SONY",
"Rank": 1
}, {
"IDs": ["00000087102120"],
"Brand": "SAMSUNG",
"Rank": 1
}, {
"GPI14s": ["00000087102150"],
"Brand": "HCL",
"Rank": 1
}, {
"GPI14s": ["00000087102110"],
"Brand": "LG",
"Rank": 1
}, {
"GPI14s": ["00000087102120"],
"Brand": "LENOVO",
"Rank": 1
}, {
"GPI14s": ["00000087102150"],
"Brand": "HP",
"Rank": 1
}],
"status": "ok"
}
Комментарии:
1. $myArray[«product»]=array_reverse($myArray[«product»], true); Вы пробовали это?
2. Кстати, во время отображения вы также можете проанализировать массив в обратном порядке, а не наоборот, прочитав его от последнего к первому
3. Если цель состоит в том, чтобы выполнять цикл только в обратном порядке, тогда выполняйте цикл только от последнего к первому, а не меняйте структуру.
4. Вы делали
json_decode()
это перед подачей заявкиarray_reverse()
?5. @RK Ahir, когда вы
print_r()
декодируете массив, вы видите, что в нем есть две записи: «продукт» и «статус» на верхнем уровне.array_reverse()
повлияет только на верхний уровень, поэтому для изменения продуктов используйте$MyArray['products'] = array_reverse($MyArray['products'])
Ответ №1:
Вы также можете использовать array_merge
$json = '
{
"product": [{
"IDs": ["00000087102110"],
"Brand": "SONY",
"Rank": 1
}, {
"IDs": ["00000087102120"],
"Brand": "SAMSUNG",
"Rank": 1
}, {
"GPI14s": ["00000087102150"],
"Brand": "HCL",
"Rank": 1
}, {
"GPI14s": ["00000087102110"],
"Brand": "LG",
"Rank": 1
}, {
"GPI14s": ["00000087102120"],
"Brand": "LENOVO",
"Rank": 1
}, {
"GPI14s": ["00000087102150"],
"Brand": "HP",
"Rank": 1
}],
"status": "ok"
}';
$decoded = json_decode($json,true);
$reverse['product'] = array_reverse($decoded['product']);
unset($decoded['product']);
$reverse = array_merge($reverse,$decoded);
echo json_encode($reverse,JSON_PRETTY_PRINT);
и вывод с :
{
"product": [
{
"GPI14s": [
"00000087102150"
],
"Brand": "HP",
"Rank": 1
},
{
"GPI14s": [
"00000087102120"
],
"Brand": "LENOVO",
"Rank": 1
},
{
"GPI14s": [
"00000087102110"
],
"Brand": "LG",
"Rank": 1
},
{
"GPI14s": [
"00000087102150"
],
"Brand": "HCL",
"Rank": 1
},
{
"IDs": [
"00000087102120"
],
"Brand": "SAMSUNG",
"Rank": 1
},
{
"IDs": [
"00000087102110"
],
"Brand": "SONY",
"Rank": 1
}
],
"status": "ok"
}