【问题标题】:Simplifying an array in PHP在 PHP 中简化数组
【发布时间】:2014-05-15 05:36:09
【问题描述】:

我有以下需要在 PHP 中定义的数组,我已经以非常基本的方式完成了:

$ch1 = array("A-MTP-1-1","A-MTP-1-2","A-MTP-1-3","A-MTP-1-4"); 
$ch2 = array("A-MTP-1-5","A-MTP-1-6","A-MTP-1-7","A-MTP-1-8"); 
$ch3 = array("A-MTP-1-9","A-MTP-1-10","A-MTP-1-11","A-MTP-1-12");

$ch4 = array("A-MTP-2-1","A-MTP-2-2","A-MTP-2-3","A-MTP-2-4"); 
$ch5 = array("A-MTP-2-5","A-MTP-2-6","A-MTP-2-7","A-MTP-2-8"); 
$ch6 = array("A-MTP-2-9","A-MTP-2-10","A-MTP-2-11","A-MTP-2-12");

$ch7 = array("A-MTP-3-1","A-MTP-3-2","A-MTP-3-3","A-MTP-3-4"); 
$ch8 = array("A-MTP-3-5","A-MTP-3-6","A-MTP-3-7","A-MTP-3-8"); 
$ch9 = array("A-MTP-3-9","A-MTP-3-10","A-MTP-3-11","A-MTP-3-12");

但我在想必须有一种简单的方法来写这个而不是写出每一个但不确定从哪里开始,有人能指出我正确的方向来简化这个 PHP,因为我也会重复它适用于上述情况,但每个都用 B 而不是 A。

【问题讨论】:

  • 你为什么不使用循环做同样的事情?
  • 使用二维数组和循环。
  • 将其写入文本文件...使用php将其拆分为您想要的方式...
  • @Dikesh 你能指出我将如何做到这一点的方向吗

标签: php arrays function output


【解决方案1】:

使用 range()array_chunkextract 来完成这项工作

<?php

for ($i = 1; $i <= 3; $i++) {           # Pass 3 as you need three sets
    foreach (range(1, 12) as $val) {    # 1,12 again as per your requirements
        $arr[] = "A-MTP-$i-" . $val;

    }
}
foreach (array_chunk($arr, 4) as $k => $arr1) {    # Loop the array chunks and set a key
    $finarray["ch" . ($k + 1)] = $arr1;
}
extract($finarray);   # Use the extract on that array so you can access each array separately
print_r($ch9);        # For printing the $ch9 as you requested.

Demo

OUTPUT :(仅$ch9 部分的插图)

Array
(
    [0] => A-MTP-3-9
    [1] => A-MTP-3-10
    [2] => A-MTP-3-11
    [3] => A-MTP-3-12
)

完成后,您可以使用array_chunk 将数组拆分为长度为4。

【讨论】:

  • 最简单的解决方案。但您也可以更改循环以覆盖具有值 A-MTP-2-A-MTP-3- 的数组
猜你喜欢
  • 2020-04-15
  • 2015-08-25
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 2013-04-18
  • 2016-03-07
相关资源
最近更新 更多