하나 이상의 어레이가 비어 있으면 merge_array가 null을 반환합니까?
내가 하고 있는 일을 간단히 설명해 주겠다.
고급 커스텀 필드 플러그인과 함께 워드프레스를 사용하고 있습니다.이것은 php 기반의 질문입니다.왜냐하면,get_field()필드에는 객체 배열이 포함됩니다.
$gallery_location = get_field('gallery_location');
$gallery_studio = get_field('gallery_studio');
예를들면$gallery_location차면 이걸 돌려줄 거야
array(18) {
[0]=>
array(10) {
["id"]=>
int(126)
["alt"]=>
string(0) ""
["title"]=>
string(33) "CBR1000RR STD Supersport 2014 001"
["caption"]=>
string(0) ""
["description"]=>
string(0) ""
["mime_type"]=>
string(10) "image/jpeg"
["url"]=>
string(94) "http://www.example.com/wp/wp-content/uploads/2013/10/CBR1000RR-STD-Supersport-2014-001.jpg"
["width"]=>
int(7360)
["height"]=>
int(4912)
}
... on so fourth
}
그런 다음 merge_array를 사용하여 두 개체를 병합합니다.
$gallery_location = get_field('gallery_location');
$gallery_studio = get_field('gallery_studio');
$downloads = array_merge( $gallery_location, $gallery_studio );
여러 어레이를 병합하고 있지만 어레이 중 하나가 비어 있으면 병합 어레이가 완전히 null로 반환됩니다.
질문입니다.merge_array가 null을 반환하는 것을 중지하려면 어떻게 해야 합니까?어레이 중 일부가 비어 있습니다.
어떤 아이디어라도 주셔서 감사합니다.
@zessx
이게 내가 돌려주는 거야...
$gallery_location = get_field( 'gallery_location' );
$gallery_studio = get_field( 'gallery_studio' );
$downloads = array_merge( $gallery_location, $gallery_studio );
var_dump($gallery_location);
var_dump($gallery_studio);
var_dump($downloads);
위의 폐기물을 같은 순서로 처리한 결과입니다
string(0) ""
array(18) {
[0]=>
array(10) {
["id"]=>
int(126)
["alt"]=>
string(0) ""
["title"]=>
string(33) "CBR1000RR STD Supersport 2014 001"
["caption"]=>
string(0) ""
["description"]=>
string(0) ""
["mime_type"]=>
string(10) "image/jpeg"
["url"]=>
string(94) "http://www.example.com/wp/wp-content/uploads/2013/10/CBR1000RR-STD-Supersport-2014-001.jpg"
["width"]=>
int(7360)
["height"]=>
int(4912)
}
... on so fourth
}
NULL
당신이 볼 수 있듯이.$downloads아직 null이 반환되지 않았습니까?아래의 두 솔루션을 모두 사용해도 동작하지 않습니까?
array_merge는 배열만 파라미터로 받아들입니다.파라미터 중 하나가 null일 경우 오류가 발생합니다.
경고: array_merge(): 인수 #x가 배열이 아닙니다...
어레이 중 하나가 비어 있으면 이 오류가 발생하지 않습니다.빈 어레이는 어레이입니다.
두 가지 옵션:
1/ 타입을 강제로array
$downloads = array_merge( (array)$gallery_location, (array)$gallery_studio );
2/ 변수가 배열인지 확인
$downloads = array();
if(is_array($gallery_location))
$downloads = array_merge($downloads, $gallery_location);
if(is_array($gallery_studio ))
$downloads = array_merge($downloads, $gallery_studio);
어레이를 Marge 하려면 , 다음의 방법을 사용할 수 있습니다.
$c = (array)$a + (array)$b
언급URL : https://stackoverflow.com/questions/19711491/merge-array-returns-null-if-one-or-more-of-arrays-is-empty
'programing' 카테고리의 다른 글
| 이 경고 메시지는 무엇을 의미합니까?'img 요소에는 의미 있는 텍스트가 포함된 alt 소품이나 장식 이미지용 빈 문자열이 있어야 합니다.' (0) | 2023.02.11 |
|---|---|
| AJAX만의 루트를 제한할 수 있습니까? (0) | 2023.02.11 |
| json_encode()를 사용할 때 어레이 인덱스 참조를 제거하는 중 (0) | 2023.02.11 |
| AngularJS 인텔리센스가 Visual Studio 2015에서 작동하지 않음 (0) | 2023.02.11 |
| 스프링 부트 컨트롤러 - 멀티파트 및 JSON을 DTO에 업로드 (0) | 2023.02.11 |