php - 在 PHP 中推送多维数组中的元素
问题描述
所以我正在使用多维数组。
例如,我试图获取的输出数据是这样的:
[[element 1],[element 2], [element 3]]
这是我的 PHP 代码(减去绑定上方的整个准备好的语句((不包括在内,因为它工作正常)):
$insertquery->bind_result($tracking_type, $tracking_change_date, $vessel_fcm_new, $vessel_fcm_old, $vessel_hull_id_new, $vessel_hull_id_old, $vessel_name_new, $vessel_name_old, $vessel_length_new, $vessel_length_old, $vessel_manufacturer_new, $vessel_manufacturer_old, $vessel_manufacturer_id_new, $vessel_manufacturer_id_old, $vessel_year_new, $vessel_year_old, $vessel_value_new, $vessel_value_old, $owner_id_new, $owner_id_old, $loss_payee_id_new, $loss_payee_id_old, $policy_id_new, $policy_id_old, $policy_start_date_new, $policy_start_date_old, $policy_end_date_new, $policy_end_date_old, $vessel_fcm, $vessel_hull_id, $vessel_name, $vessel_manufacturer_id);
while ($insertquery->fetch()){
if($vessel_fcm_new != $vessel_fcm_old){
$data = array($vessel_fcm_new, $vessel_fcm_old);
}
if ($vessel_name_new != $vessel_name_old){
array_push($data, $vessel_name_new, $vessel_name_old);
}
$data_return[] = $data;
}
echo json_encode($data_return);
基本上,代码开始遍历每个数据库行,如果满足条件,它将构建一个数组,并将该数组添加到数组对象中。因此,如果满足匹配条件,结果将如下所示:
[[row 1], [row2], [row3]]
但是,我收到此错误:
Warning: array_push() expects parameter 1 to be array, null given in C:\htdocs\alterajax.php on line 16
但是我已经指定了数组,或者至少我认为我是($data
)。这也是我看到的输出:
[null,null,null,null,null,["FCMjgis","fFH465","Smokey","GIIGE"]]
我敢肯定这只是一件小事,但如果您能提供帮助,我将不胜感激。先感谢您!
解决方案
就像我说的,只需初始化您的变量或测试它是否已使用isset
$insertquery->bind_result($tracking_type, $tracking_change_date, $vessel_fcm_new, $vessel_fcm_old, $vessel_hull_id_new, $vessel_hull_id_old, $vessel_name_new, $vessel_name_old, $vessel_length_new, $vessel_length_old, $vessel_manufacturer_new, $vessel_manufacturer_old, $vessel_manufacturer_id_new, $vessel_manufacturer_id_old, $vessel_year_new, $vessel_year_old, $vessel_value_new, $vessel_value_old, $owner_id_new, $owner_id_old, $loss_payee_id_new, $loss_payee_id_old, $policy_id_new, $policy_id_old, $policy_start_date_new, $policy_start_date_old, $policy_end_date_new, $policy_end_date_old, $vessel_fcm, $vessel_hull_id, $vessel_name, $vessel_manufacturer_id);
while ($insertquery->fetch()){
if($vessel_fcm_new != $vessel_fcm_old){
$data = array($vessel_fcm_new, $vessel_fcm_old);
}
if (isset($data) && $vessel_name_new != $vessel_name_old){
array_push($data, $vessel_name_new, $vessel_name_old);
$data_return[] = $data;
}
}
echo json_encode($data_return);
推荐阅读
- node.js - 如何获得密钥斗篷令牌?
- javascript - 在 cypress 的测试中访问网站提供的 JavaScript 变量
- arrays - Swift:根据在前端另一个创建的数组中保存的 ID 对从后端检索到的对象数组进行排序
- php - PDO 无法在 SELECT 查询中为 NULL 绑定值
- winforms - 由于分辨率差异,我如何通过 Ranorex 单击错误的项目?
- r - 将列中的分类值存储在向量 R 中
- python - 如何在 HTML 中发布查询集的第一个值?
- object - Dataweave - 在 mappedObject 中动态拆分名称字段
- java - 如何让 MacOS (Catalina) 使用自定义 Java 版本?
- python - 如何在字典的循环中获取句柄和标签?