2016-03-21 17 views
-1

Aşağıdaki dizi formatını kullanıyorum. 2 userid'ım var. Bu diziyi kullanıcılarına göre düzeltmek istiyorum.PHP'de dizi formatını değiştir

PHP dizide Aşağıda vardır:

Array 
(
[808] => Array 
    (
     [0] => 1 
     [1] => 1 
     [2] => 1 
     [3] => 1 
     [4] => 0 
    ) 

[766] => Array 
    (
     [0] => 0 
     [1] => 1 
     [2] => 0 
     [3] => 0 
     [4] => 1 
    ) 
) 

ve ben de formata altında olmasını istediğiniz:

Array 
(
[0] => Array 
    (
     [808] => 1 
     [766] => 0 
    ) 
[1] => Array 
    (
     [808] => 1 
     [766] => 1 
    )  
[2] => Array 
    (
     [808] => 1 
     [766] => 0 
    ) 
[3] => Array 
    (
     [808] => 1 
     [766] => 0 
    ) 
[4] => Array 
    (
     [808] => 0 
     [766] => 1 
    ) 

) 
+3

? Stackoverflow sadece kodu vermek için burada değil, bunu nasıl yapacağınızı anlamanıza yardımcı olmak için burada. –

+0

Bu, gerçek dizi formatı değil. Daha önce farklı bir şeydi ama bunu foreach döngüsünü kullanarak bunu yapmak için değiştirdim. Ama şimdi sıkıştım, bu diziyi düzeltemiyorum. Lütfen bana yardım edin –

cevap

1

bu deneyin :

<?php 
$array = Array 
(
808 => Array 
    (
     '0' => 1, 
     '1' => 1, 
     '2' => 1, 
     '3' => 1, 
     '4' => 0 
    ), 

766 => Array 
    (
     '0' => 0, 
     '1' => 1, 
     '2' => 0, 
     '3' => 0, 
     '4' => 1, 
    ) 
); 

$result = array(); 

foreach($array as $key => $subarray) 
{ 
    foreach($subarray as $subkey =>$subvalue) 
    { 
     if(!isset($result[$subkey])) 
      $result[$subkey] = array(); 

     $result[$subkey][$key] = $subvalue; 
    } 
} 


echo '<pre>'; 
print_r($result); 
echo '</pre>'; 

Çıktı:

Array 
(
    [0] => Array 
     (
      [808] => 1 
      [766] => 0 
     ) 

    [1] => Array 
     (
      [808] => 1 
      [766] => 1 
     ) 

    [2] => Array 
     (
      [808] => 1 
      [766] => 0 
     ) 

    [3] => Array 
     (
      [808] => 1 
      [766] => 0 
     ) 

    [4] => Array 
     (
      [808] => 0 
      [766] => 1 
     ) 

) 

Çalışma örneği: Şimdiye kadar denedim ne CLICK!

+0

Çalışır, teşekkürler :-) –

0

Böyle yapabilirsiniz:

$ids = array_keys($your_array); 
$new_array = array(); 
foreach($i=0; $i<count($your_array[0]); $i++){ 
    foreach($ids as $id){ 
     $new_array[][$id] = $your_array[$id][$i]; 
    } 
} 
İlgili konular