简体   繁体   English

如何扫描数组中的空索引,并在php中使用新值打印?

[英]how to scan null index in array, and print it with a new value in php?

<?php

function tambah_penumpang($daftar_penumpang, $penumpang_baru){
    if(empty($namaArray)==true){
        $daftar_penumpang[]=$penumpang_baru;
        return $daftar_penumpang;
    }else{
        for($i=0; $i<count($daftar_penumpang); $i++){
            if($daftar_penumpang[$i]== null){
                $daftar_penumpang[$i]=$penumpang_baru;
                return $daftar_penumpang;
            }else{
                $daftar_penumpang[] = $penumpang_baru;
                return $daftar_penumpang;
            }
        }
    }

}
    $daftar_penumpang =["sandhika",null,"carl","keith"];
    print_r(tambah_penumpang($daftar_penumpang,"anggoro"))."<br>"
?>

And this are the result: (i want that anggoro name in null's index) 这就是结果:(我想在null的索引中使用anggoro名称)

Array ( 
    [0] => sandhika 
    [1] => 
    [2] => carl 
    [3] => keith 
    [4] => anggoro 
)

Try with this function : 试试这个功能:

<?php

function tambah_penumpang($daftar_penumpang, $penumpang_baru){
    $datas = [];
    for($i = 0; $i < count($daftar_penumpang); $i++) {
        $item = $daftar_penumpang[$i];
        if($item === null) {
            $item = $penumpang_baru;
        }
        $datas[$i] = $item;
    }

    return $datas;
}

$daftar_penumpang =["sandhika",null,"carl","keith"];
print_r(tambah_penumpang($daftar_penumpang,"anggoro"))."<br>";

as I'm not familiar with your naming convention , i've made a global example using array_walk as follows: 因为我不熟悉你的命名约定,我使用array_walk创建了一个全局示例,如下所示:

$daftar_penumpang =["sandhika",null,"carl","keith"];

array_walk($daftar_penumpang, function($v, $k, $replacement) use (&$daftar_penumpang) {
    if ($v == null) {
        $daftar_penumpang[$k] = $replacement;
    }
}, 'anggoro');

print_r($daftar_penumpang);

live example: https://3v4l.org/vVnSq 实例: https//3v4l.org/vVnSq


for your case : 对于你的情况:

$daftar_penumpang =["sandhika",null,"carl","keith"];

function tambah_penumpang($daftar_penumpang, $penumpang_baru) {
    array_walk($daftar_penumpang, function($v, $k, $replacement) use (&$daftar_penumpang) {
        if ($v == null) {
            $daftar_penumpang[$k] = $replacement;
        }
    }, $penumpang_baru);

    return $daftar_penumpang;
}


print_r(tambah_penumpang($daftar_penumpang, 'anggoro'));

this will output: 这将输出:

Array ( [0] => sandhika [1] => anggoro [2] => carl [3] => keith )

Update 更新

using for loop : 使用for循环:

your code issue is that you will never ever get into the for loop because it is in else condition , and while the $namaArray is alway empty, so you will never go through the loop , so i've removed this check and prepared this looping to show you how to replace null values using for loop 你的代码问题是你永远不会进入for循环,因为它处于else状态,而$namaArray总是空的,所以你永远不会经历循环,所以我已经删除了这个检查并准备了这个循环向您展示如何使用for循环替换空值

function tambah_penumpang($daftar_penumpang, $penumpang_baru)
{
    $tmpArray = [];
    for ($i=0; $i < count($daftar_penumpang); $i++) {
        if ($daftar_penumpang[$i]== null) {
            $tmpArray[$i] = $penumpang_baru;
        } else {
            $tmpArray[] = $daftar_penumpang[$i];
        }
    }
    return $tmpArray;
}

$daftar_penumpang =["sandhika",null,"carl","keith"];
print_r(tambah_penumpang($daftar_penumpang,"anggoro"));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM