PHP数组切片多个数组不起作用

标签 php foreach slice

以下将 $scpar 切片为两种类型,一种包含前 9 个,第二种包含从 10 到 18 的前逗号分隔值。

$scpar9 = array_slice($scpar,0,9);
      $scpar18 = array_slice($scpar,9,18);

然后,我们使用 foreach 并使用 id 参数 $sid 从其他字段获取相同的逗号分隔值。

foreach ($scpar9 as $sid => $scpar) {

然后像这样从其他字段获取信息。

<b>'.$scpar.'</b> '.$sccomp[$sid].$scmen[$sid].

一切正常,问题出在第二个 9 个字段。

foreach ($scpar18 as $sid => $scpar) {
<b>'.$scpar.'</b> '.$sccomp[$sid].$scmen[$sid].

字段$scpar是正确的,但包含[$sid]的字段是从第一个结果开始,而不是从第9个结果开始。

有什么想法吗?

太棒了

最佳答案

您需要使用preserve_keys

preserve_keys : Note that array_slice() will reorder and reset the array indices by default. You can change this behaviour by setting preserve_keys to TRUE.

   $scpar18 = array_slice($scpar,9,18, true);

关于PHP数组切片多个数组不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6733490/

相关文章:

php - 基于URL查询的Elasticsearch JSON查询

php - 从 PHP 将 IP 存储在 MySQL 中

php PDO fetchAll() - 虽然不工作,但 foreach 工作

python - Python 的切片边界和 "stride"之间的神秘交互

php - 在 PHP 中的 3 个元素后面添加 HTML 类

javascript - PHP/JavaScript 打印文档而不打开它

javascript - 是否有 for 循环或 .forEach 方法删除当前数组元素,然后让流程从同一索引继续?

php - foreach函数从mysql db创建数组

Perl 哈希切片、复制 x 运算符和子参数

javascript - 在悬停时显示 Highcharts 饼图切片名称