2d Array her değerin 1 üyesi 1d Dizisi Yap | PHP

4 Cevap php

Bunu nasıl yapabilirim? Burada görülen Kodum çalışmıyor

for($i=0;i<count($cond);$i++){
	$cond[$i] = $cond[$i][0];
}

4 Cevap

Bu kadar basit olabilir:

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

Kaynak dizi sayısal dizin değilse sorunlar olabilir. Bunun yerine bu deneyin:

$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];
}

Geri eskisine yeni dizi yeniden atamak, sonradan aynı değişken adını istiyorum varsayarsak.

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

Ayrıca,, dizide ne bağlı, böyle bir şey yapmak mümkün olabilir.

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

As previously stated, your code will not work properly in various situation. Try to initialize your array with this values:

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

Bir çözüm, beni daha iyi okunabilir de aşağıdaki kodu:

//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);

Sen tam bir açıklama için reference for array map okuyabilirsiniz.

Sen array_walk (o "yerine" dizi faaliyet) kullanarak hafif bir varyasyonu için de tercih edebilirsiniz. Işlevi bir değer döndüren ve onun parametre referans olarak geçmiş olduğunu unutmayın.

function reduceToFirstItem(&$x) { $x=$x[0]; }
array_walk($cond, 'reduceToFirstItem');