1

次のような条件付き文字列があります。

echo $cnd = "'use_funds'=>'no'";

そして私の$data配列は:

$data = array(
    $cnd,
    'quantity'   => $_POST['qty_' . $q],
    'veg_name'   => $_POST['veg_name_' . $q],
    'rate'       => $_POST['rate_' . $q],
    'ws_price'   => $_POST['ws_price_' . $q],
    'ret_price'  => $_POST['ret_price_' . $q],
    'mop'        => $_POST['mop_' . $q],
    'ret_margin' => $_POST['ret_margin_' . $q]
);

上記echo $cndは を示しています'use_funds'=>'no'が、var_dump($data)を示していますarray 0 => string ''use_funds'=>'no'' (length=17)。また、文字列であるため、データがテーブルに挿入されていません。$cnd文字列の代わりに連想配列要素を作成するにはどうすればよいですか?

4

6 に答える 6

3
if (your condition) {
  $data['use_funds'] = 'no';
} else {
  //some other code
}
于 2013-06-18T06:23:35.403 に答える
2

配列にデータを作成して挿入するために $cnd 部分を使用しないでください。

以下のコードを使用します。

$data['use_funds'] = 'no';

そして、このコードは配列を追加します。または、PHP のarray_push関数を使用できます。

于 2013-06-18T06:23:41.820 に答える
1

文字列でなければならない場合は、分割して配列に追加します。 http://php.net/manual/en/function.explode.php

分解関数は文字列を受け取り、それを配列に分割します

$my_string_split = explode('=>', $cnd);
// returns [0 => 'use_funds', 1 => 'no']
$data[$my_string_split[0]] = $my_string_split[1];

文字列である必要がない場合は、文字どおりにします。

$data['use_funds'] = 'no';
于 2013-06-18T06:35:05.017 に答える
-1

を使用してそれを達成できますeval

$cnd = "'use_funds'=>'no'";

eval("\$x = array($cnd);");

print_r($x);
于 2013-06-18T06:24:47.073 に答える