2013-10-16 3 views
2

나는 array_combine()경고 : array_combine() : array_combine() : 두 매개 변수 요소의 동일한 번호가 있어야

경고 여기에 문제가 두 매개 변수는 행에 PATH의 요소 같은 수 있어야한다

foreach(array_combine($images, $word) as $imgs => $w) 
{ 
    //do something 
} 

내가 그것을 어떻게 해결할 수 : X

이 오류는 다음 줄에 표시를 얻는다?

+2

두 배열에 같은 수의 요소를 넣으려고 했습니까? –

+1

array_combine()이 작동하려면 각 배열의 요소 수가 같아야합니다. –

+0

사용자가 실수로 null 값을 추가 한 경우입니다.이 오류가 발생하지 않도록하려면 어떻게해야합니까? –

답변

11

이 오류는 길이가 다른 두 배열을 결합하려고 시도 할 때 나타납니다. 예를 들어 :

Array 1: Array (A, B, C)  //3 elements 
Array 2: Array (1, 2, 3, 4) //4 elements 

array_combine()

이 두 배열을 결합 할 수 없습니다 및 경고를 발생합니다.


이 오류를 해결하는 방법에는 여러 가지가 있습니다.

두 배열 요소의 동일한 금액을 가지고 그들이 할 경우에만 그들을 결합하는 경우가 확인할 수 있습니다 작은 하나가로

<?php 

    $arrayOne = Array("A", "B", "C"); 
    $arrayTwo = Array(1, 2, 3); 

    if(count($arrayOne) == count($arrayTwo)){ 
     $result = array_combine($arrayOne, $arrayTwo); 
    } else{ 
     echo "The arrays have unequal length"; 
    } 

?> 

당신은 많은 요소를 사용하는 두 배열을 결합 만 할 수

<?php 

    $arrayOne = Array("A", "B", "C"); 
    $arrayTwo = Array(1, 2, 3); 

    $min = min(count($arrayOne), count($arrayTwo)); 
    $result = array_combine(array_slice($arrayOne, 0, $min), array_slice($arrayTwo, 0, $min)); 

?> 

또는 당신은 또한 단지 채울 수 누락 된 요소까지 :

<?php 

    $arrayOne = Array("A", "B", "C"); 
    $arrayTwo = Array(1, 2, 3); 

    $result = []; 
    $counter = 0; 

    array_map(function($v1, $v2)use(&$result, &$counter){ 
     $result[!is_null($v1) ? $v1 : "filler" . $counter++] = !is_null($v2) ? $v2 : "filler";  
    }, $arrayOne, $arrayTwo); 

?> 

참고 : 모든 예제에서 키 배열에는 고유 한 요소 만 있습니다. 그렇지 않으면 PHP는 요소를 동일한 키로 덮어 쓰게되므로 마지막 키만 유지합니다.

+0

샘플을 제공해 주시겠습니까? –

관련 문제