有没有办法使我的代码更短?多维数组

时间:2019-05-08 08:56:20

标签: php arrays optimization multidimensional-array

有没有一种方法可以将该数组写得更短?

如果我添加一些新数组,例如$ array5 ..我的代码将更长。因此,将其缩短一点会很好。有人有主意吗?

$values = [
        [
            'title' => 'array1',
            'start' => '@abc',
            'end' => '*/',
            'value' => null,
        ],
        [
            'title' => 'array2',
            'start' => '@def',
            ....
        ],
        [
            'title' => 'array4',
            'start' => null,
            ....
        ],
];

此后,有一个foreach循环,用于查找特定的php注释是否包含$ value ['start']:

foreach ($values as $value)
        {
            if (!strstr($phpComment, $value['start'])
            {
                $value['start'] = null;
            else
            {
                // Here the algorithm should get a string between start and end and set it as 'value'
            }
}

2 个答案:

答案 0 :(得分:1)

您可以将PHP的简单附加操作符用作[]

$values[] = $array5 = ['title' => 'array5', 'start' => "AAA"];

这样,新数组既可以追加到$values之后,又可以是单独的var name $array5

Here is在线演示如何缩短它

答案 1 :(得分:0)

如果是沉闷的数据输入,则可以执行以下操作:

<?php
$keys = ['title', 'author'];
$data =
[
    ['Big Brother', 'Orwell'],
    ['Bleak House', 'Dickens']
];

foreach($data as $item) {
    $output[] = array_combine($keys, $item);
}

var_export($output);

输出:

array (
  0 => 
  array (
    'title' => 'Big Brother',
    'author' => 'Orwell',
  ),
  1 => 
  array (
    'title' => 'Bleak House',
    'author' => 'Dickens',
  ),
)

如果您确实需要将每个子数组分配给一个变量,则可以稍后执行此操作:

list($array1, $array2) = $output;

但我怀疑是否有必要。您可以按键定位。即$output[1]是狄更斯的条目。