Bir dizi içinde nesneleştirmek iyi yolu

3 Cevap php

Ben aşağıda örneğe benzer tefrika verileri içeren bir dizi var.

Array
(
    [0] => Array
        (
            [id] => 4
            [data] => a:2:{s:6:"Series";a:1:{s:11:"description";s:11:"hello world";}s:4:"Type";a:1:{i:0;s:1:"1";}}
            [created] => 2009-10-12 18:45:35
        )
    [1] => Array
        (
            [id] => 3
            [data] => a:2:{s:6:"Series";a:1:{s:11:"description";s:11:"hello world";}s:4:"Type";a:1:{i:0;s:1:"1";}}
            [created] => 2009-10-12 17:39:41

        )
    ...
)

Ne veri anahtarının değerini unserialize ve içeriği ile seri hale verileri değiştirmek için en iyi yolu olurdu?

Ben bunlar olmamalı zaman dizideki son iki girişleri aynı olmasına rağmen çalışan bir referans kullanarak döngü denedim.

foreach($data as &$item) {
    $item['data'] = unserialize($item['data']);
}

3 Cevap

Yine başka bir yolu:

foreach ($data as $key => $item) {
    $data[$key]['data'] = unserialize($item['data']);
}

Veya:

foreach ($data as $item) {
    $item['data'] = unserialize($item['data']);
    $data[] = $item;
}
$data = array_slice($data, count($data)/2);

Bir foreach-döngü içinde başvuruları kullanma sabit ize ve gizemli davranışları tanıtabilirsiniz. Bunun yerine, basit bir for-döngü kullanmak gerekir.

$num = count($data);
for ($i = 0; $i < $num; $i++)
{
    $item[$i]['data'] = unserialize($item[$i]['data']);
}

Bunun gibi bir şey çalışır:

$data2 = array ();
foreach($data as $item) {
    $item['data'] = unserialize($item['data']);
    $data2[] = $item;
}

Eğer başka bir dizi kullanmak için değil isterseniz:

foreach($data as $k => $item) {
    $data[$k]['data'] = unserialize($item['data']);
}