PHP:操作现有数组

时间:2017-06-05 06:16:33

标签: php arrays

我有一个现有的数组$ cars []。这是我创建数组$ cars []

的方法
$cars = array("1" => "Toyota", 
              "5" => "BMW",
              "7" => "Volvo",
              "32"=> "Porsche" );

如您所见,数组$ cars []的索引不符合规定。我需要做的是在需要时在数组$ cars []中插入一个数组元素,使其按顺序排列。我需要像这样制作数组$ cars []:

$cars = array("1" => "Toyota", 
              "2"=> "NULL",
              "3"=> "NULL",
              "4"=> "NULL",
              "5" => "BMW",
              "6"=> "NULL",
              "7" => "Volvo",
              "8"=> "NULL",
               .
               .
               .
              "31"=> "NULL",
              "32"=> "Porsche"
               .
               .
               .
              "48"=> "NULL"  ); 
共有48辆车。谢谢你们!

4 个答案:

答案 0 :(得分:0)

试试这个 -

function addKeyArray(&$array)
{
    end($array);
    $max = key($array); //Get the final key as max or you can directly pass value like $max = 48; 
    for($i = 0; $i < $max; $i++)
    {
        if(!isset($array[$i]))
        {
            $array[$i] = 'NULL';
        }
    }
}

addKeyArray($cars); 
ksort($cars);
echo "<pre>"; print_r($cars);

<强>阐释:

addKeyArray()将循环并检查是否有任何密钥未命中,然后它将设置密钥,之后ksort()将根据密钥对数组进行排序。

答案 1 :(得分:0)

要将新数据插入现有数组,请使用 -

array_push($cars, $new_value);

然后使用 ksort

对数组进行排序
ksort($cars);

这将为您提供正如您所期望的数组

答案 2 :(得分:0)

您可以按键排序数组试试这个

ksort($cars);

答案 3 :(得分:0)

这段代码可以帮到你

$cars = array("1" => "Toyota", 
              "5" => "BMW",
              "7" => "Volvo",
              "32"=> "Porsche" );
for($i=min(array_keys($cars));$i<=max(array_keys($cars));$i++){
    if(!isset($cars[$i])){
        $cars[$i]="NULL";
    }
}
ksort($cars);

$cars = array("1" => "Toyota", "5" => "BMW", "7" => "Volvo", "32"=> "Porsche" ); for($i=min(array_keys($cars));$i<=max(array_keys($cars));$i++){ if(!isset($cars[$i])){ $cars[$i]="NULL"; } } ksort($cars);

如果你想每次都从索引1开始,你可以改变&#34; min(array_keys($ cars))&#34; in for循环使用&#34; 1&#34;