【问题标题】:How to save array variables in antoher array PHP如何将数组变量保存在另一个数组PHP中
【发布时间】:2019-06-07 07:48:04
【问题描述】:

我正在提出 3 * 5 = 之类的问题?和 ? * 5 = 15。为此,我将保存一个编号为 1 到 10 的数组变量 ($arrayTotalQuestions) 和一个数组变量 ($arrayAnswers) $array1 中的数字为 5,10,15,20,25,30,35,40,45,50。我将在我的表中循环这 2 行 20 次,如下所示:

foreach($array1 as $array1) {
    echo $array1[array_rand($array1)];
}

数组中的(数组)变量:

$arrayTotalQuestions = range(1, 10);
$number = 5;
$arrayAnswers = (5, 10, 15, 20, 25, 30, 35, 40, 45, 50);

现在我想将这 3 个变量存储在另一个名为 $array1 的数组中:

$array1 = array(
    "<tr><td>$this->arrayTotalQuestions</td>    <td>x</td>     <td>$this->number</td>     <td>=</td>      <td><input type='text' name='txtAnswer[$this->arrayTotalQuestions]'></td></tr>",
    "<tr><td><input type='text' name='txtAnswer[$this->arrayAnswers]' value=''></td>   <td>x</td>  <td>$this->number</td>   <td>=</td>  <td>$this->arrayAnswers</td></tr>"
);

但我收到错误“数组到字符串的转换...”,因为 $array1 中的数组变量。 我该如何解决这个问题?

【问题讨论】:

  • 您希望输入标签的名称是什么?
  • 你想要$array1里面的那些数组变量吗?
  • 你的问题完全不清楚
  • 是的,我想将这些数组变量存储在 $array1 中
  • 但还不清楚,能否请您显示所需的输出并更新您的问题?

标签: php arrays loops


【解决方案1】:

就像错误所说的那样,您正在尝试将数组转换为字符串,这是不可能的。

看看这个例子:

<?php
  $array = [1,2,3,4,5];
  $newVar = "This is my array: $array";
?>

这会导致错误E_NOTICE : type 8 -- Array to string conversion -- at line 3

您正在尝试输出一个数组,其中包含多个值,作为字符串的一部分。 PHP 不知道你想怎么做(它应该只列出所有数组变量吗?在它们之间放一个空格吗?一个逗号?一个逗号和一个空格?等等)

因此,您需要自己将数组转换为字符串。一种方法是使用 PHP 中的 join() 函数。

join() 接受 2 个参数:separatorarray,并输出一个字符串,该字符串是由分隔符分隔的所有数组值。

所以上面的例子变成了:

<?php
  $array = [1,2,3,4,5];
  $newVar = "This is my array: ".join(", ", $array);
?>

哪个输出This is my array: 1, 2, 3, 4, 5


根据评论更新

要在同一个 foreach 循环中使用 2 个或更多数组,只需将其更改为 for 循环:

for($i = 0, $i < count($array1); $i++) {
  echo $array1[$i].': '.$array2[$i];
}

也有一种使用 foreach 循环的方法,但我发现这不是一种干净的维护方法(只是我的偏好)。

foreach($array1 as $index => $value) {
  echo $value.': '.$array2[$index];
}

【讨论】:

  • 我想要这样的东西:这样的输出:测试 1 和 40 测试 2 和 70 测试 3 和 100 测试 4 和 10 测试 5 和 40 这样做:$array1 = [1,2,3,4,5]; $array2 = [10,20,30,40,50, 60, 70, 80, 100]; foreach($array1 as $array1) { echo "test $array1 and". $array2[array_rand($array2)]; } 我想使用array2 也在 array1 的循环中
  • 添加到我的回答中以回复此评论@cbk38。您需要使用 for 循环,而不是 foreach 循环。
猜你喜欢
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2014-02-15
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
相关资源
最近更新 更多