<?php
$ore = "piece1 piece2 piece3 piece4 piece5 piece6";
$user = array();
$alotted = array();
//splitting string ore.
$output = preg_split( "/ ( |\n) /", $ore );
//entering even value of array output to user and odd to alotted.
for ($x = 0; $x < sizeof($output); $x++)
{
if ($x % 2 == 0)
{
array_push(user,$output[$x]); //trying to put values in array user.
}
else
{
array_push(alotted,$output[$x]);//trying to put value in alotted.
}
}
?>
答案 0 :(得分:2)
首先,你应该研究一下用字符串分割字符串的爆炸: http://php.net/manual/en/function.explode.php
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
其次,您可以使用array [] - 语法将新元素推送到数组中:
$user[] = $array[$i];
为了回答您的问题,我认为您的代码的主要问题是您不要将变量用户和 alotted 加上PHP所需的$ -char前缀变量有。
答案 1 :(得分:1)
首先,如果这不是拼写错误,您就忘记了$
标志:
array_push($user,$output[$x]);
// ^ $
array_push($alotted,$output[$x]);
// ^
然后在你的正则表达式上,删除前导和尾随空格:
$output = preg_split("/( |\n)/", $ore); // space or newline
// ^ ^ // no spaces
重构为:
$ore = "piece1 piece2 piece3 piece4 piece5 piece6";
$output = preg_split("/( |\n)/", $ore );
// $output = explode(' ', $ore);
$user = $alotted = array();
for ($x = 0; $x < sizeof($output); $x++) {
($x % 2 == 0) ? array_push($user,$output[$x]) : array_push($alotted,$output[$x]);
}
我不知道为什么你必须对此使用正则表达式,explode()
应该足够在这个特定的字符串示例中。
代码:
$ore = "piece1 piece2 piece3 piece4 piece5 piece6";
foreach(explode(' ', $ore) as $x => $piece) {
($x % 2 == 0) ? $user[] = $piece : $alotted[] = $piece;
}
答案 2 :(得分:1)
try this code
$ore = "piece1 piece2 piece3 piece4 piece5 piece6";
$user = array();
$alotted = array();
$output=explode(" ", $ore);
print_r($output);
echo'<br>';
for ($x = 0; $x < sizeof($output); $x++)
{
if ($x % 2 == 0)
{
array_push($user,$output[$x]); //trying to put values in array user.
}
else
{
array_push($alotted,$output[$x]);//trying to put value in alotted.
}
}
echo '<pre>';
print_r($user);
答案 3 :(得分:1)
或者你可以使用这样的东西
$user[] = $output[$x]
$alloted[] = $output[$x]
答案 4 :(得分:0)
使用php
中的$
检查您的用户和变量变量
<?php
for ($x = 0; $x < sizeof($output); $x++)
{
if ($x % 2 == 0)
{
array_push($user,$output[$x]); //trying to put values in array user.
}
else
{
array_push($alotted,$output[$x]);//trying to put value in alotted.
}
}
?>
答案 5 :(得分:0)
您的正则表达式不正确。
preg_split( "/\s+/", $ore );
将正确拆分字符串。此外,您需要在变量名称前加上$
,如上面的答案所示。
答案 6 :(得分:0)
<?php
$ore = "piece1 piece2 piece3 piece4 piece5 piece6";
$user = array();
$alotted = array();
//splitting string ore.
$output = preg_split( "/( |\n)/", $ore );
//entering even value of array output to user and odd to alotted.
for ($x = 0; $x < sizeof($output); $x++)
{
if ($x % 2 == 0)
{
array_push($user,$output[$x]); //trying to put values in array user.
}
else
{
array_push($alotted,$output[$x]);//trying to put value in alotted.
}
}
?>
首先,您错过了$ for user并分配在array_push中。 另外,对于preg_split,在/.
之前和之后不要给出空格$output = preg_split( "/ ( |\n) /", $ore );
应该是
$output = preg_split( "/( |\n)/", $ore );