gpt4 book ai didi

php - 如何从数组中提取特定值

转载 作者:可可西里 更新时间:2023-11-01 12:52:25 27 4
gpt4 key购买 nike

示例来自此处 http://php.net/manual/en/function.array-slice.php

$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // returns "c", "d", and "e"
$output = array_slice($input, -2, 1); // returns "d"
$output = array_slice($input, 0, 3); // returns "a", "b", and "c"

但是如何获取例如“a”、“d”和“e”?

喜欢

$output = array_slice($input, 0, 1);
$output = array_slice($input, 3, 1);
$output = array_slice($input, -1, 1);

但在一个变量中。可能吗?

更新。想要使用数组的第一个、第三个和最后一个元素。就好像提取第一个、第三个和最后一个元素并仅使用这 3 个元素创建新数组。

最佳答案

你必须抛出 array_merge()加入组合,因为array_slice()只能提取数组的子序列,而不是分布在整个数组中的任意数量的元素。分别提取每个子序列,然后将它们合并到一个数组中:

$slice1 = array_slice($input, 0, 1);
$slice2 = array_slice($input, -2, 2);
$output = array_merge($slice1, $slice2);

但是请注意,这只有在您真正了解数组中的每个元素时才有效。在这种情况下,您也可以使用直接数组访问,这很可能会产生更少的开销并且更容易阅读:

$output = array($input[0], $input[3], $input[4]);

使用array_filter() 可能更合理甚至是自定义迭代器。但是您没有提供足够的关于您的任务的信息来清楚地说明这一点。

编辑:
如果只是符号问题,您可以尝试指定一个包含所有相关索引的数组,然后使用 array_fill_keys() 切换它。为了与array_intersect_key()一起使用仅从数组中提取相关元素:

$indexes = array(0, 3, 4);
$indexArray = array_fill_keys($indexes, true);
$output = array_intersect_key($input, $indexArray);

关于php - 如何从数组中提取特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16394750/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com