문제

어떻게 할 수 있습니까? 여기에서 본 내 코드는 작동하지 않습니다

for($i=0;i<count($cond);$i++){
    $cond[$i] = $cond[$i][0];
}
도움이 되었습니까?

해결책

작동해야합니다. 왜 작동하지 않습니까? 어떤 오류 메시지를 받습니까? 이것은 내가 사용할 코드입니다.

$inArr;//This is the 2D array
$outArr = array();
for($i=0;$i<count($inArr);$i++){
        $outArr[$i] = $inArr[$i][0];
}

다른 팁

이것만큼 간단 할 수 있습니다.

$array = array_map('reset', $array);

소스 배열이 수치 적으로 색인되지 않으면 문제가있을 수 있습니다. 대신 시도해보십시오.

$destinationArray = array();
for ($sourceArray as $key=>$value) {
    $destinationArray[] = $value[0]; //you may want to use a different index than '0'
}
// Make sure you have your first array initialised here!
$array2 = array();
foreach ($array AS $item)
{
    $array2[] = $item[0];
}

나중에 동일한 변수 이름을 원한다고 가정하면 새 배열을 이전 배열로 다시 할당 할 수 있습니다.

$array = $array2;
unset($array2); // Not needed, but helps with keeping memory down

또한 배열의 내용에 따라 어떤 일을 할 수 있습니다.

$array = array_merge(array_values($array));

앞에서 언급했듯이, 귀하의 코드는 다양한 상황에서 제대로 작동하지 않습니다. 이 값으로 배열을 초기화하십시오.

$cond = array(5=>array('4','3'),9=>array('3','4'));

나에게 더 잘 읽기 쉬운 솔루션도 다음 코드입니다.

//explain what to do to every single line of the 2d array
function reduceRowToFirstItem($x) { return $x[0]; }

// apply the trasnformation to the array
$a=array_map('reduceRowTofirstItem',$cond);

당신은 읽을 수 있습니다 배열 맵에 대한 참조 철저한 설명을 위해.

약간의 변형을 사용하여 선택할 수도 있습니다 Array_walk (배열에서 "제자리에"작동합니다). 함수는 값을 반환하지 않으며 그의 매개 변수는 참조로 전달됩니다.

function reduceToFirstItem(&$x) { $x=$x[0]; }
array_walk($cond, 'reduceToFirstItem');
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top