2017-02-28 24 views
0

私は3つの文字列を多次元配列の要素に変換する関数をPHPで作成しようとしています。だから、現時点での配列はこれです:phpの文字列名を変数に変換しますか?

`$testcart=[$testcamera = [ 
'name' => 'Sony camera', 
'price' => 170 
    ] 
    ]; 

$phone = [ 
    'name' => 'Lg g3', 
    'price' => 400 

];' 

そして私は、フォームを介してこの要素を追加しようとしています:

`$smartphone = [ 
    'name' => 'HTC One', 
    'price' => 300 

];` 

ので、ユーザ入力「スマートフォン」HTC 1」、そして300私は、この機能を作成しました:

function newcreate_item($newitemvariable,$newitemname,$newitemprice) { 
    $newitem = "$" . $newitemvariable; 
    $newitem = [ 
    'name' =>$newitemname, 
    'price' =>$newitemprice]; 
    return $newitem; 
} 

をしかし、私は、変数名に文字列($ newitemvariable)に変換するように見えることはできません。どんな助けでも大歓迎です!

+0

すべての最初は、それをしない...ということができますあまりにも多くのものがありますこれで間違っています...あまりにも多くの方法..あなたがそれを主張するなら、抽出機能を使用してください。http://php.net/manual/en/function.extract.php – Dimi

答えて

0

非常に危険ではない使用するので、右の機能を行うことがプロ(evalのある場合を除き):

php -a 
Interactive mode enabled 

php > $str = '$testcart=[ 
php ' [ 
php ' \'name\' => \'Sony camera\', 
php ' \'price\' => 170 
php ' ], 
php ' [ 
php '  \'name\' => \'Lg g3\', 
php '  \'price\' => 400 
php ' 
php ' ]];'; 
php > eval($str); 
php > var_dump($testcart); 
array(2) { 
    [0]=> 
    array(2) { 
    ["name"]=> 
    string(11) "Sony camera" 
    ["price"]=> 
    int(170) 
    } 
    [1]=> 
    array(2) { 
    ["name"]=> 
    string(5) "Lg g3" 
    ["price"]=> 
    int(400) 
    } 
} 
php > 
関連する問題