我正在尝试插入一个数组,或者(如果已经声明了一个)向其中添加元素。
$ data数组的Print_r输出:
Array
(
[0] => Array
(
[0] => 7727368
[1] => Array
(
)
)
[1] => Array
(
[0] => 7727284
[1] => Array
(
[0] => Array
(
[0] => 7543419783
)
)
)
[2] => Array
(
[0] => 7787473
[1] => Array
(
[0] => Array
(
[0] => 7771723347
)
[1] => Array
(
[0] => 8458457
)
)
)
)
PHP代码:
$idaukcji = $_POST['idaukcji'];
$modid = $_POST['modid'];
foreach($data as $item){
foreach($item[1] as $subitem){
if($subitem[0]==$idaukcji){
if(array_key_exists('1',$subitem)){
array_push($subitem[1],$modid);
}
else{
array_push($subitem, array($modid));
}
}
$tobase = base64_encode(serialize($item[1]));
$sql="UPDATE data SET allegroaucnum='$tobase' WHERE wfnum = '$item[0]'";
mysqli_query($conn,$sql) or die(mysqli_error($conn));
}
}
该脚本应检查是否已声明最深嵌套数组的索引[1]上是否存在现有数组,然后应将$modid
添加到该数组,如果没有,则使用{{1 }}作为元素。
实际代码提供了我们上面看到的内容(在print_r中),但是如果我添加
$modid
之后(在其他地方)
echo $subitem[1][0];
它确实返回$ modid值,但在某种情况下它不会在print_r中显示
非常感谢您的帮助。
答案 0 :(得分:1)
尝试此功能:
function flat_array($array, &$result)
{
if(!is_array($array)) {
return $array;
}
foreach ($array as $key => $item) {
if(is_array($item)) {
unset($array[$key]);
flat_array($item, $result);
} else {
$result[] = $item;
}
}
return $array;
}
执行代码
flat_array($array, $result);
$result = array_unique($result); // if you want to make sure thar each value is unique