有没有一种方法可以将该数组写得更短?
如果我添加一些新数组,例如$ 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'
}
}
答案 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]
是狄更斯的条目。