php - 다차원 배열의 가장 바깥쪽 키를 제거하고 값을 유지합니다.
phpcn_u1582
phpcn_u1582 2017-06-23 09:11:13
0
3
2482

이것이 배열입니다. array_values를 사용한 후 배열을 매개변수로 사용할 수 없다는 ID impolde 프롬프트에 따라 재정렬된 것 같고 개체도 사용되며 json도 변환되는 것으로 나타났습니다. 어떻게 가야 하나요?

업데이트:

이것으로 충분하지만 새 retlist 0 array_colum 이후에 인쇄된 결과 [0]이 배열의 끝으로 이동했습니다.

phpcn_u1582
phpcn_u1582

모든 응답(3)
代言

JSON을 PHP 배열로 변환하려는 경우 방법은 다음과 같습니다

우선, 데이터 형식은 JSON이므로 먼저 PHP 배열로 변환해야 합니다.

으아악

json_decode第二个参数为TRUE은 키 이름을 유지한다는 의미입니다. 그렇지 않으면 JSON이 PHP 배열로 변환된 후 PHP 배열의 키 이름이 재정렬됩니다.

그런 다음 $a['data']值用array_column处理,或者使用array_values 데이터에서 배열 값을 재정렬합니다.

으아악

PHP를 JSON으로 변환하고 싶다면 DataData为数组[]를 사용하세요.

PHP 배열에 있는 한 먼저 위의 array_column或者array_values处理过$a['Data']을 따른 다음 직접 실행하세요

으아악

주의json_encode第二个参数绝对不能用JSON_FORCE_OBJECT,否则还是会使Data变为对象{}.

업데이트

귀하의 코드를 읽은 후에는 귀하가 무엇을 하려는지 알 것 같습니다. 원래 배열에서 ID 값을 찾고 싶고 $makeupId相等的项,然后把它提前到数组第一个?如果是这样你的代码写复杂了。通过array_column()이 마법의 기능을 통해 귀하의 요구 사항을 쉽게 충족할 수 있습니다. 코드는 다음과 같습니다

으아악

코드 끝


그럼 왜 array_values()array_column()都会使顺序变乱。因为这两个函数都是会重新编号的,而且它编号的顺序,不是你键名的标签顺序,也就是说你键名手动写成0,1,2,3并不会使它重新编号时候按照0,1,2,3를 사용하여 정렬하는지 다시 이야기해 보겠습니다. 번호가 다시 매겨지는 순서는 코드가 실행되는 순서에 따라 달라집니다. 즉, last...[0] = $newarr는 실제로 배열의 시작 부분이 아니라 전체 배열의 끝 부분에 있으므로 아무리 노력해도 키 이름이 0입니다. , 이 0은 요소가 모두 끝까지 실행됨에 해당합니다.


업데이트 2

위 코드에는 많은 주석과 설명이 있습니다. 순수한 코드는 다음과 같습니다.

으아악

업데이트 3

다음에는 array_column 외에 몇 가지 가능한 솔루션을 더 추가해 보겠습니다.

옵션 1:

이 솔루션은 원본 코드 수정을 기반으로 합니다.
코드의 마지막 줄에서 두 번째 줄에 $retlist = ...를 추가하세요(위

). 으아악

옵션 2:

이 솔루션은 원본 코드 수정을 기반으로 합니다.
코드를 $retlist[0] = $newarr;改为array_unshift($retlist, $newarr);

변경하세요.

위에서 언급했듯이 array_columnarray_values都会重新编号,重新编号的顺序取决于你定义对应值的顺序,而并非是键名的数字顺序,所以上面这个修改,是用数组头部推入项替代$retlist[0]array_values 모두 번호가 다시 매겨지는 순서는 키 이름의 숫자 순서가 아니라 해당 값을 정의하는 순서에 따라 달라지므로 위 수정은 다음과 같습니다. 배열을 사용하려면 헤더 푸시 항목이 $retlist[0]의 값 정의 및 초기화를 대체합니다.

옵션 3:

이 역시 코드에 따라 수정됩니다.
트래버스하기 전에 $retlist[0] = [],然后当你遍历到符合$makeupId项的时候,直接赋值给$retlist[0],这样,由于事先定义了$retlist[0]를 먼저 정의하므로 번호를 다시 매겨도 순서가 먼저 적용됩니다.

滿天的星座

키 값을 제거하는 것이 다차원 배열의 한 레이어를 제거하는 것과 같다는 뜻인가요? 그렇다면 대략적인 예제를 작성했으니 위의 그림처럼 이 아이디어를 따라 구현하시면 됩니다

学霸

처리를 더 쉽게 하려면 json 데이터를 php 배열로 변환하는 것이 가장 좋습니다. 그렇지 않으면 처리하기 어려울 것입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!