2012-02-27 10 views
1
$m = new mysql(); 
$players=$m->get('pugs','Players','PID=6'); 
$players = unserialize($players); 
$players = array($players); 
array_push($players[0]['T1'],'test'); 

このコードが、私は(私は余分な配列層をたくないので)このように動作するようにしたいPHP Array_Push作品以上の多次元配列

$m = new mysql(); 
$players=$m->get('pugs','Players','PID=6'); 
$players = unserialize($players); 
array_push($players['T1'],'name5'); 

$選手がから返される配列であります私のデシベル(それはDBにシリアライズされた保たれている)、

$players = array 
    (
    'T1' => array 
    (
    0 => "name1", 
    1 => "name2", 
    2 => "name3", 
    3 => "name4" 
    ), 
    'T2' => array 
    (
    0 => "name1", 
    1 => "name2", 
    2 => "name3", 
    3 => "name4" 
    ), 
    'RDY' => array 
    (
    ), 
    'NRDY' => array 
    (
    ) 
    ); 

私はそれが(それはすでに1つの???であってもカントー)配列として$選手を定義することなく仕事を得るカント、私を助けてください

+0

あなたの問題を再現することはできませんか? –

+0

はい私はその配列のシリアル化バージョンを持っています。 – twizzle

+0

私たちにINSERTを表示してください – alfasin

答えて

1

私はあなたがDBに持っているものと同一のクローンを必要とする

<?php 
$m = new mysqlDummy(); 
$players=$m->get('pugs','Players','PID=6'); 
$players = unserialize($players); 
var_dump($players); 
array_push($players['T1'],'test'); 
var_dump($players); 

class mysqlDummy { 
    public function get($f, $t, $w) { 
     return 'a:4:{s:2:"T1";a:0:{}s:2:"T2";a:0:{}s:3:"RDY";a:0:{}s:4:"NRDY";a:0:{}}'; 
    } 
} 

プリント

array(4) { 
    ["T1"]=> 
    array(0) { 
    } 
    ["T2"]=> 
    array(0) { 
    } 
    ["RDY"]=> 
    array(0) { 
    } 
    ["NRDY"]=> 
    array(0) { 
    } 
} 
array(4) { 
    ["T1"]=> 
    array(1) { 
    [0]=> 
    string(4) "test" 
    } 
    ["T2"]=> 
    array(0) { 
    } 
    ["RDY"]=> 
    array(0) { 
    } 
    ["NRDY"]=> 
    array(0) { 
    } 
} 

(予想通り)