Voici le tableau. Après avoir utilisé array_values, j'ai découvert qu'il semble avoir été réorganisé en fonction des invites ID impolde indiquant que le tableau ne peut pas être utilisé comme paramètre, que l'objet est également utilisé et que le json est également converti. Comment dois-je y aller ?
Mise à jour :
Cela suffit, mais après ma nouvelle retlist 0 array_colum, le résultat imprimé [0] est allé à la fin du tableau.
Si vous souhaitez convertir JSON en tableau PHP, la méthode est la suivante
Tout d'abord, votre format de données est JSON, qui doit d'abord être converti en tableau PHP.
json_decode
第二个参数为TRUE
signifie conserver les noms de clés, sinon une fois le JSON converti en tableau PHP, les noms de clés du tableau PHP seront réorganisés.Puis
$a['data']
值用array_column
处理,或者使用array_values
dans vos données et réorganisez les valeurs du tableau.Si vous souhaitez convertir PHP en JSON, utilisez
Data
中Data
为数组[]
.Tant que dans le tableau PHP, suivez d'abord ce qui précède
array_column
或者array_values
处理过$a['Data']
, puis exécutez directementAttention
json_encode
第二个参数绝对不能用JSON_FORCE_OBJECT
,否则还是会使Data变为对象{}
.Mise à jour
Après avoir lu votre code, il me semble savoir ce que vous voulez faire. Vous voulez connaître la valeur ID dans le tableau d'origine et
$makeupId
相等的项,然后把它提前到数组第一个?如果是这样你的代码写复杂了。通过array_column()
Cette fonction magique peut facilement répondre à vos besoins. Le code est le suivantFin du code
Ensuite, laissez-moi en reparler, pourquoi vous utilisez
array_values()
和array_column()
都会使顺序变乱。因为这两个函数都是会重新编号的,而且它编号的顺序,不是你键名的标签顺序,也就是说你键名手动写成0,1,2,3
并不会使它重新编号时候按照0,1,2,3
pour trier. L'ordre dans lequel il est renuméroté dépend de l'ordre dans lequel votre code est exécuté. En d'autres termes, votre dernier...[0] = $newarr n'est pas réellement au début du tableau, mais à la fin du tableau entier, il a juste un nom de clé de 0, donc peu importe vos efforts. , ce 0 correspond à Les éléments courront tous jusqu'au bout.Mise à jour 2
Il y a de nombreux commentaires et explications dans le code ci-dessus, voici le code pur :
Mise à jour 3
Ajoutons un peu plus de contenu. Vous trouverez ci-dessous plusieurs solutions réalisables en plus
array_column
.Option 1 :
Cette solution est basée sur la modification de votre code d'origine.
)Ajoutez
$retlist = ...
à l'avant-dernière ligne de votre code (ci-dessusOption 2 :
Cette solution est également basée sur la modification de votre code d'origine.
dans votre codeChangez
$retlist[0] = $newarr;
改为array_unshift($retlist, $newarr);
Comme mentionné ci-dessus,
array_column
和array_values
都会重新编号,重新编号的顺序取决于你定义对应值的顺序,而并非是键名的数字顺序,所以上面这个修改,是用数组头部推入项替代$retlist[0]
etarray_values
seront renumérotés. L'ordre de renumérotation dépend de l'ordre dans lequel vous définissez les valeurs correspondantes, et non de l'ordre numérique des noms de clés, donc la modification ci-dessus est. pour utiliser des tableaux, les éléments push d'en-tête remplacent la définition de la valeur et l'initialisation de$retlist[0]
.Option 3 :
Ceci est également modifié en fonction de votre code.
Avant de parcourir, définissez d'abord
$retlist[0] = []
,然后当你遍历到符合$makeupId
项的时候,直接赋值给$retlist[0]
,这样,由于事先定义了$retlist[0]
, ainsi même s'il est renuméroté, son ordre sera toujours le premier.Cela signifie-t-il que le simple fait de supprimer la valeur clé équivaut à supprimer une couche du tableau multidimensionnel ? Si c'est le cas, j'ai écrit un exemple approximatif. Vous pouvez suivre cette idée pour la mettre en œuvre, comme le montre l'image ci-dessus
.Il est préférable de convertir les données json en un tableau php pour un traitement plus facile. Sinon, ce sera difficile à gérer.