v2.5.2
Giriş yap

Array Virgülle Birleştirme

qplot
452 defa görüntülendi
PHP Ürün Varyant sistemi için Dinamik bir formdan gelen verileri eşleştirmem gerekli

array_combine denedim lakin işimi görmedi tavsiyeniz nelerdir


//POST ÇIKTIM

Array
(
    [0] => Array
        (
            [kombin_63] => Array
                (
                    [0] => 87 //40 numara
                )

            [kombin_15] => Array
                (
                    [0] => 23 //mavi
                    [1] => 24 //kırmızı
                    [2] => 25 //mor
                    [3] => 26 //mavi
                )

        )

)

istediğim sonuç

(adsbygoogle = window.adsbygoogle || []).push({});

87,23
87,24
87,25
87,26

tarzında tabi bu Numara ve renk haricinde üçüncü bir seçenek daha içerebilir

Cevap yaz
Cevaplar (4)
qplot
855 gün önce

BU KOD OLAYI ÇÖZDÜ :)


function combinations($arrays, $i = 0) {
    if (!isset($arrays[$i])) {
        return array();
    }
    if ($i == count($arrays) - 1) {
        return $arrays[$i];
    }
 
    $tmp = combinations($arrays, $i + 1);

    $result = array();
 
    foreach ($arrays[$i] as $v) {
        foreach ($tmp as $t) {
            $result[] = is_array($t) ? 
                array_merge(array($v), $t) :
                array($v, $t);
        }
    }

    return $result;
}

print_r(
    combinations(
        array(
            array('87','99'), 
            array('23','24','25','29') 
        )
    )
);

qplot
855 gün önce

BU KODDA KOMBİNASYON SONRASI GÜZEL İŞ GÖRDÜ


$arr = [
    "color" => [["name"=>"red"],['name'=>'yellow']],
    "size" => [["name"=>"18 inch"], ["name"=>"15 inch"]],
    "type" => [["name"=>"plastic"]],
    "brand" => [['name' => 'something']],
];

function runFor($arr ,&$array, $keys,$index,&$positions){
    foreach ($arr[$keys[$index]] as $key => $espec){
        $positions[$keys[$index]] = $key;
        if($index + 1 < count($keys)){
            runFor($arr,$array,$keys, $index+1,$positions);
        }else{
            $item = (object)[];
            foreach ($keys as $key){
                $item->$key = $arr[$key][$positions[$key]]['name'];
            }
            array_push($array,$item);
        }
        unset($positions[$keys[$index]]);
    }
}


$array = array();
$keys = array_keys($arr);
$positions = [];
runFor($arr,$array,$keys,0,$positions);
$combo = array();
foreach ($array as $item){
    array_push($combo,json_encode($item));
}
var_dump($combo);

qplot
860 gün önce

evet statik işi bozuyor, ama fikir sahibi oldum sayende çözüme ulaşırım herhalde artık :)
teşekkür ederim

abdullahx
861 gün önce

Olabildiğince dinamik yapmaya çalıştım ama yine de $deger değişkeni biraz statik sayılabilir

$array = [
    [
        'kombin_63' => [
            87
        ],
        'kombin_15' => [
            23, 24, 25, 26
        ]
    ]
];

$combine = array_pop($array[0]);
$deger = current($array[0])[0];
foreach ($combine as $k => &$v)
    $v = "$deger,$v";

print_r($combine);

// Array
// (
//     [0] => 87,23
//     [1] => 87,24
//     [2] => 87,25
//     [3] => 87,26
// )