2013-06-17 25 views
7

Ana diziden kaldırmam gereken bazı dizinler var. Örneğin: Bence döngüde çalıştırılabilir PHP array_slice fonksiyonunu biliyorumDizinin genel dizinlerini kaldırın

$mainArray=array('2'=>'b','4'=>'d','5'=>'e'); 

fakat çok büyük veri var ve ben önlemek istiyorum:

$removeIndex=array(1,3,6); 
$mainArray=array('1'=>'a','2'=>'b','3'=>'c','4'=>'d','5'=>'e','6'=>'f'); 

gibi sonuçta istiyorum burada döngü.

+1

[ 'array_diff'] (http://www.php.net/manual/en/function.array-diff.php) – naththedeveloper

+1

mayb ($ endeksi olarak $ removeIndex) foreach kullanmak { unset ile manipüle deneyebilir misiniz ($ mainArray [$ index]) } – tejas

cevap

8

Belki array_diff_key deneyin:

$removeIndex=array(1,3,6); 
$mainArray=array('1'=>'a','2'=>'b','3'=>'c','4'=>'d','5'=>'e','6'=>'f'); 
$removeIndex = array_flip($removeIndex);//flip turns values into keys 
echo '<pre>'; 
//compute diff between arr1 and arr2, based on key 
//returns all elements of arr 1 that are not present in arr2 
print_r(array_diff_key($mainArray, $removeIndex)); 
echo '</pre>'; 

Bunu denedim, o döndürdü:

Array 
(
    [2] => b 
    [4] => d 
    [5] => e 
)
+0

'dan kaçınmaya çalıştığı bir döngü gerektirir. Bu," LOOPING "olmadan tam olarak aradığım şeydir, Teşekkürler – Jacklish

+4

@EliasVanOotegem Bir zaman sınırı vardır, sabırlı olun :-) – HamZa

+0

@EliasVanOotegem Evet, zaman sınırını tamamlamayı beklediğinizde, 1 dakika içinde size kredi verecektir. – Jacklish

1

unset işlevini deneyin. Bu mükemmel çalışmalı.

unset($mainArray[1]); 
+0

'unset' _would_, OP'nin –

4

Eğer gibi değerleri yapmak gerekir removeIndex dizideki unutmayın array_diff_key kullanabilirsiniz keys

$removeIndex=array('1' => 0,'3' => 0,'6' => 0); 
$mainArray=array('1'=>'a','2'=>'b','3'=>'c','4'=>'d','5'=>'e','6'=>'f'); 

$t = array_diff_key($mainArray, $removeIndex); 

print_r($t); 

@Elias'ın işaret ettiği gibidizininizdeki değerleri değiştirmek için array_flip kullanabilirsiniz.

+1

Bu yüzden ['array_flip()'] kullanabilirsiniz (http://www.php.net/manual/en/function.array-flip.php) – HamZa

+1

evet teşekkürler :) @HamZa – DevZer0