我有一个像这样的条件字符串:
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
变为关联数组元素而不是字符串?
答案 0 :(得分:3)
if (your condition) {
$data['use_funds'] = 'no';
} else {
//some other code
}
答案 1 :(得分:2)
答案 2 :(得分:1)
如果必须是字符串,请将其拆分并添加到数组中。 http://php.net/manual/en/function.explode.php
explode函数接受一个字符串并将其分解为数组
$my_string_split = explode('=>', $cnd);
// returns [0 => 'use_funds', 1 => 'no']
$data[$my_string_split[0]] = $my_string_split[1];
如果它不需要是字符串,请按字面意思执行:
$data['use_funds'] = 'no';
答案 3 :(得分:0)
首先,您的$cnd
是字符串,而不是数组。并且您尝试使用$cnd
数组附加此$data
。
为了向数组添加元素,我们基本上使用push()
方法。对于您的情况,如果您使用array_push
方法,那么您将获得如下所示的输出
array_push($cnd,$data);
$data=array(
0=>'use_funds'=>'no',
'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]
);
所以如果你想要你想要的结果,那么我的建议就是按照以下步骤: -
either define your $cnd as an array and then use array_merge();
答案 4 :(得分:0)
echo $cnd = "'use_funds'=>'no'";
上述行将"'use_funds'=>'no'"
视为字符串,并将其分配给$cnd
。所以无论如何,它总是保持为一个字符串,除非你对它进行任何适当的改变。在这种情况下,默认密钥为0
。所以,它会像:
[0] => "'use_funds'=>'no'"
要解决此问题,您可以执行此操作:
$cnd = array('use_funds'=>'no');
然后,你使用array_merge()函数来合并这两个:
array_merge($cnd, $data);
答案 5 :(得分:-1)
您可以使用eval
$cnd = "'use_funds'=>'no'";
eval("\$x = array($cnd);");
print_r($x);