【发布时间】:2020-04-03 00:59:32
【问题描述】:
在我看来,这应该很简单,但由于某种原因,它让我变得更好,我一定是太累了,或者它太明显了。我有一个从数据库中获取的项目数组,我需要更新一些元素,并且我正在使用 for 循环遍历数组的每个元素,在这种情况下,它包含四个元素。
[16] => Array
(
[sku] => SKU14820
[item] => Box of Shoes
[desc] => Nice leather Shoes
[price] => 66
)
所以我创建了我的循环并开始遍历每个小数组,因为原始数组长度可能会有所不同,并且各个数组可能会有所不同,我正在使用 for 循环来准备我的语句以更新数据库的 mysqli。
因此,较小数组中的每个元素都需要分配一个 binding_param,所以我认为最简单的方法可能不是最好看的就是检查 isset,然后将绑定参数附加到该元素。
for($x=0;$x < count($checked);$x++){
$bind_type = array();
$sku = $checked[$x]['sku'];
if(isset($checked[$x]['sku'])){
$bind_type[0] = 's';
print_r($bind_type);
$checked[$x]['sku'][] = $bind_type;
}
}
我不断收到此错误,我很困惑.. 非常感谢您的帮助,我怀疑这对我来说是一个明显的错误....
>>Array
>>(
>> [0] => s
>>)
>>
>>
>>Fatal error: Uncaught Error: [] operator not supported for strings
【问题讨论】:
-
我认为
$checked[$x]['sku']是一个字符串,而不是一个数组,对吧?你确定这行得通吗?$checked[$x]['sku'][] = $bind_type -
你能给我们展示一个你更新后的数组应该是什么样子的例子吗?是不是像这样:[16] => Array ([sku] => SKU14820 [item] => 鞋盒 [desc] => 漂亮的皮鞋 [price] => 66 [bind_type] => s)跨度>
-
大概是这样3v4l.org/D6Y79
-
我开车去上班,以为我可能已经修复了,但可惜没有.... 遍历数组中的每个元素并将 binding_type 准备好分配给准备好的语句以进行更新的想法。我将数组更改为关联数组而不是数字,但这仍然不起作用...
-
觉得我的一分钱掉了
标签: php arrays for-loop append