如何从 setter 添加项目到数组
How to add items to array from a setter
我是 PHP OOP 的新手,我想知道如何从 setter 添加或推送新项目到数组并显示所有项目,这是我的代码。
$r = "/some regex here/";
for ($i = 0; $i < count($p[0]); $i++)
{
preg_match($r, $text, $value);
preg_match($r, $schema, $name);
$this->setTheOutput('name', $name[1]);
$this->setTheOutput('value', $value[1]);
}
这是另一个class
中的数组
protected $output = [];
protected function setTheOutput($name, string $value)
{
$this->output[$name] = $value;
}
结果应该类似于
{ {{"name":"{{Name}}","value":"Foo"}, {"name":"{{Age}}","value":"20"},
{"name":"{{mission}}","value":"none"}}, {
{{"name":"{{Name}}","value":"Bar"}, {"name":"{{Age}}","value":"25"},
{"name":"{{mission}}","value":"none"}} }
每当我循环 For 循环时,我总是得到最后一个项目,我想获得所有项目并像结果中提到的那样显示它们。
您正在不断覆盖相同键的值。
如果对应的键不存在,您可能希望将值添加到最后一个关联数组,并在饱和的情况下分配一个新的关联数组。
protected $output = [];
protected function setTheOutput($name, string $value)
{
$last = end($this->output);
if(array_key_exists($name, $last) {
$this->output[] = [$name => $value];
} else {
$last[$name] = $value;
}
}
结构将是这样的:
Array(
Array(
key1 => value1,
key2 => value2
),
Array(
key1 => value3,
key2 => value4
),
...
Array(
key1 => value5,
key2 => value6
)
)
函数获取外层数组的最后一个元素,并检查要插入的键是否已经存在于最后一个内层数组中。
如果存在,则会分配另一个内部数组,并在此处分配键值对。
否则,键值对将被简单地附加。
显示值:
foreach($output as $line) {
foreach($line as $k => $v) {
echo "key ${k} value ${v}";
}
}
我是 PHP OOP 的新手,我想知道如何从 setter 添加或推送新项目到数组并显示所有项目,这是我的代码。
$r = "/some regex here/";
for ($i = 0; $i < count($p[0]); $i++)
{
preg_match($r, $text, $value);
preg_match($r, $schema, $name);
$this->setTheOutput('name', $name[1]);
$this->setTheOutput('value', $value[1]);
}
这是另一个class
中的数组protected $output = [];
protected function setTheOutput($name, string $value)
{
$this->output[$name] = $value;
}
结果应该类似于
{ {{"name":"{{Name}}","value":"Foo"}, {"name":"{{Age}}","value":"20"}, {"name":"{{mission}}","value":"none"}}, { {{"name":"{{Name}}","value":"Bar"}, {"name":"{{Age}}","value":"25"}, {"name":"{{mission}}","value":"none"}} }
每当我循环 For 循环时,我总是得到最后一个项目,我想获得所有项目并像结果中提到的那样显示它们。
您正在不断覆盖相同键的值。
如果对应的键不存在,您可能希望将值添加到最后一个关联数组,并在饱和的情况下分配一个新的关联数组。
protected $output = [];
protected function setTheOutput($name, string $value)
{
$last = end($this->output);
if(array_key_exists($name, $last) {
$this->output[] = [$name => $value];
} else {
$last[$name] = $value;
}
}
结构将是这样的:
Array(
Array(
key1 => value1,
key2 => value2
),
Array(
key1 => value3,
key2 => value4
),
...
Array(
key1 => value5,
key2 => value6
)
)
函数获取外层数组的最后一个元素,并检查要插入的键是否已经存在于最后一个内层数组中。 如果存在,则会分配另一个内部数组,并在此处分配键值对。 否则,键值对将被简单地附加。
显示值:
foreach($output as $line) {
foreach($line as $k => $v) {
echo "key ${k} value ${v}";
}
}