bir dizeyi php içinde çok boyutlu diziye dönüştürmek

Bir dizgeyi php'deki çok boyutlu bir diziye dönüştürmekte sorun yaşıyorum. Bu benim dizgim:

$String = a,b,c|d,e,f|g,h,y|

Ben deniyorum budur:

$one=explode("|",$String);
foreach ($one as $item)
{
    $one=explode(",",$one);
}

Bu diziyi oluşturmak istiyorum:

$array={ {a,b,c}, {d,e,f}, {g,h,y} };
3

6 cevap

Deneyin -

$one=explode("|",$String);
$array = array();
foreach ($one as $item){
    $array[] = explode(",",$item);
}
3
katma
üzgünüm neden ilk kez benimle işe yaramadı bilmiyorum tekrar yaptım ve bu işe belki o zaman bir hata yaptım çok teşekkür ederim
katma yazar badr, kaynak

Bu kodu dene:

$string = 'a,b,c|d,e,f|g,h,y|';
$arr = array_map(function($iter){ return explode(',',$iter);},explode('|',$string));

Umarım biraz yardımcı olur.

2
katma

Döngü kısmı hariç neredeyse doğru yaptınız. Bunu dene

$result = [];
$String = 'a,b,c|d,e,f|g,h,y|';

$firstDimension = explode('|', $String);//Divide by | symbol
foreach($firstDimension as $temp) {
   //Take each result of division and explode it by , symbol and save to result
    $result[] = explode(',', $temp);
}

print_r($result);
2
katma

Buna zaten cevap verildi, ancak yorum yapamadığım veya birisini oylayamadığım için: p

$multidimension_array=array(); 
//I removed the last pipe (|) of your string since it will create an empty array

 $String = "a,b,c|d,e,f|g,h,y";
 $parents=explode("|",$String);

 foreach ($parents as $parentvalue) {
     $multidimension_array[]=explode(",",$parentvalue);     
 }
// output a more readable result
 echo "
"; print_r($multidimension_array); echo "
";

Bu çıktı olacak

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => d
            [1] => e
            [2] => f
        )

    [2] => Array
        (
            [0] => g
            [1] => h
            [2] => y
        )

)
2
katma

Bunu dene-

$String = 'a,b,c|d,e,f|g,h,y|';

$one = array_filter(explode("|", $String));

print_r($one); //Array ( [0] => a,b,c [1] => d,e,f [2] => g,h,y ) 

$result = array_map('v', $one);

function v($one) {
    return explode(',',$one);
}

print_r($result);//Array ( [0] => Array ( [0] => a [1] => b [2] => c ) [1] => Array ( [0] => d [1] => e [2] => f ) [2] => Array ( [0] => g [1] => h [2] => y ) )
1
katma

Bu kodu kullan

$String= 'a,b,c|d,e,f|g,h,y|';

$one=explode("|",$String);

print_r(array_filter($one));

Çıkış olacak

Array
(
    [0] => a,b,c
    [1] => d,e,f
    [2] => g,h,y
)
0
katma
Kodunu denedin mi?
katma yazar Sougata Bose, kaynak
Gerekli verileri üretiyorsa lütfen tekrar kontrol edin.
katma yazar Sougata Bose, kaynak
@sgt Evet! Kodumu denediniz mi .. ???
katma yazar Sunil Pachlangia, kaynak
bu sadece baskı dizisi ve bir tane de dim dizisi değil iki tane de "," bölmediniz
katma yazar badr, kaynak
yardımın için teşekkürler ama ihtiyacım olan yukarıda yazdığın şey değil, sorumu tekrar kontrol edebilirsin çıktı farklı
katma yazar badr, kaynak