PHP array_push()得到索引?

时间:2018-05-23 07:12:01

标签: php arrays key array-push

我正在寻找一种将值推入具有自动递增键的数组的方法。问题:我想知道插值的关键。

有办法做到这一点吗?将值插入数组并获取插入值的索引?

当一个项目从数组中删除时,数组的计数不等于下一个insert-key。

由于 亚历

3 个答案:

答案 0 :(得分:0)

您可以在array_push之后使用end()。你将得到最后一个被插入的元素。

end()将数组的内部指针前进到最后一个元素,并返回其值。

key()返回当前数组位置的索引元素。

请看下面的例子:

$array = array(
    '0' => 'one',
    '1' => 'two',
    '2' => 'three', 
);

end($array);         // move the pointer to the end of array
$key = key($array);  // fetches the key of the element by the pointer

var_dump($key);

你可以尝试一个更快的解决方案。

$last_key = key( array_slice( $array, -1, 1, TRUE ) );
echo $last_key; //output "last"

希望这会对你有所帮助。

答案 1 :(得分:0)

围绕array_push()的简单包装函数可以提供帮助:

function array_push_autoinc(array &$array, $item) {
    $next = sizeof($array);
    $array[$next] = $item;
    return $next;
}

答案 2 :(得分:0)

我找到了解决方案:

这是我的 example-array

$array = [2 => "two", 1 => "one", "four" => 4];

如您所见,有一些字符串和整数用作数组键。

首先,我需要通过 排序数组:

ksort($array);

现在数组看起来像这样:

$array = ["four" => 4, 1 => "one", 2 => "two"];

现在我可以将指针移动到数组的结尾获取密钥(所以我有最高的数字键):

end($array);
$key = key($array);

我现在将密钥增加1 并使用新密钥插入值:

$key++;
$array[$key] = "three";

现在保存密钥在变量$key中,数组如下所示:

$array = ["four" => 4, 1 => "one", 2 => "two", 3 => "three"];
$key = 3;

就是这样。

现在为你们所有的脚本小子提供完整的代码:

$array = [2 => "two", 1 => "one", "four" => 4];

ksort($array);
end($array);
$key = key($array);
$key++;

$array[$key] = "three";