用标准键重建阵列

时间:2018-08-17 10:15:07

标签: php arrays

我制作了一个脚本,基本上在其中爆炸字符串,例如:

$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);

然后我做一个条件,如果为真,则必须取消设置数组的第一个值(使用键0)

if (condition) {
    unset($pieces[0]);

问题在于,当我取消设置第一个值时,它将使数组以键1开头,而我需要以键0开头,因为我必须将这些值与并行数组合并。

因此,问题是:任何人都知道一个函数,以便用标准键(从0到n)重建数组。谢谢。

6 个答案:

答案 0 :(得分:5)

if (condition) {
    array_shift($pieces);
}

print_r($pieces);

答案 1 :(得分:1)

或者您可以使用array_values重置所有键。

if (condition) {
   unset($pieces[0]);
   $pieces = array_values($pieces);
}

如果删除项目[5],它将变为[6]-> [5]

答案 2 :(得分:1)

您可以使用PHP array_shift()函数从数组中删除第一个元素或值。 array_shift()函数还返回删除的数组值。但是,如果数组为空(或变量不是数组),则返回值为NULL。

<?php
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);

// Deleting first array item
$removed = array_shift($pieces);
print_r($pieces);
echo "<br>";
var_dump($removed);
?>

输出

Array ( [0] => piece2 [1] => piece3 [2] => piece4 [3] => piece5 [4] => piece6 ) 
// Removed
    string(6) "piece1"

答案 3 :(得分:0)

使用array_values

$pieces = array_values($pieces);

答案 4 :(得分:0)

$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$arr = explode(" ", $pizza);
foreach($arr as $k => $v) {
    if($v == 'piece3' || $v == 'piece5') {
        array_splice($arr, $k, 1);
    }
}
print_r($arr);

// Array
// (
//     [0] => piece1
//     [1] => piece2
//     [2] => piece4
//     [3] => piece5
// )

答案 5 :(得分:0)

看看array_filter函数。它使您能够使用更复杂的决策。

$result = array_filter($pieces, function($index) {
    return $index > 0;
}, ARRAY_FILTER_USE_KEY);