我制作了一个脚本,基本上在其中爆炸字符串,例如:
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
然后我做一个条件,如果为真,则必须取消设置数组的第一个值(使用键0)
if (condition) {
unset($pieces[0]);
问题在于,当我取消设置第一个值时,它将使数组以键1开头,而我需要以键0开头,因为我必须将这些值与并行数组合并。
因此,问题是:任何人都知道一个函数,以便用标准键(从0到n)重建数组。谢谢。
答案 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);