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

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';
于 2013-06-18T06:35:05.017 回答
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();
于 2013-06-18T06:28:30.063 回答
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);
于 2013-06-18T06:30:22.277 回答
-1

您可以使用它来完成它eval

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

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

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