PHP数组不通过循环显示所有值

时间:2017-07-26 14:25:47

标签: javascript php jquery html arrays

我正在编写一个php函数,它将内容附加到$ results变量并返回附加到它的所有结果。

我有一个变量$ myArray,它包含许多独立的数组,如下所示

Array(
[0] => ABC
[1] => DEF
[2] => GHI
[3] => JKL
 )
Array(
[0] => MNO
[1] => 123A
[2] => 123B
[3] => 123C
 )
Array(
[0] => orange
[1] => yellow
[2] => green
[3] => blue
 )

在我的代码中,我通过内容循环生成按钮和数据。我理想情况下,如果第一个按钮被按下第一个数组的内容(ABC,DEF,GHI,JKL),第二个按钮(MNO,123A,123B,123C)等等。

这是我生成内容的循环

for($index=0; $index < count($exampleArray); index++){
  $myArray = array_values(array_filter($exampleArray[$index]["Column2"]));
  $returnVariable .= '<td>
    <button type="button" class="open-my-modal btn btn-primary" 
        data-numbers="'.htmlspecialchars(json_encode($myArray), ENT_QUOTES, 'UTF-8').'" </td>';

上面的代码根据传递的数据生成不同的按钮,并发送到模态。我创建id的模态代码部分位于

之下
$returnVariable .= '<tr>
                        <td><span id ="value1"></span></td>
                        <td><span id ="value2"></span></td>
                        <td><span id ="value3"></span></td>
                        <td><span id ="value4"></span></td>
                    </tr>

然后我有一个脚本,当打开模态时,我将数据链接到html id。

$returnVariable .= '<script>

$(document).ready(function () {             
$(".open-my-modal").click(function(){
  $("#value1").html($(this).data("numbers")[0]);

问题是无论什么按钮显示相同的信息。并且在任何按钮上传递的唯一数据是ABC,DEF,GHI,JKL。

我打电话

$("#value1").html($(this).data("numbers")[0]); Only ABC will show.

如果我打电话

$("#value1").html($(this).data("numbers")); It shows ABC up to JKL

数据应根据点击的按钮动态变化。 MNO等,橙色,黄色从未出现过。每个按钮只会占用第一个数组。

内容将动态循环,例如

<td><span id ="value1"></span></td> = ABC
                    <td><span id ="value2"></span></td>= DEF
                    <td><span id ="value3"></span></td>= GHI
                    <td><span id ="value4"></span></td>= HIJ

下一步按钮点击值=

<td><span id ="value1"></span></td> = MNO
                    <td><span id ="value2"></span></td>= 123A
                    <td><span id ="value3"></span></td>= 123B
                    <td><span id ="value4"></span></td>= 123C

等等

1 个答案:

答案 0 :(得分:1)

发生这种情况的原因是因为$myArray被覆盖了。你发布了:

Array(
[0] => ABC
[1] => DEF
[2] => GHI
[3] => JKL
 )
Array(
[0] => MNO
[1] => 123A
[2] => 123B
[3] => 123C
 )
Array(
[0] => orange
[1] => yellow
[2] => green
[3] => blue
 )

嗯,数组键[0],[1],[2],[3]在每个实例中是相同的,并且没有任何内容可以包含&#34;每个阵列。

你真的需要一个多维数组,更像是这样:

[0] => [
    [0] => ABC
    [1] => DEF
    [2] => GHI
    [3] => JKL
],
[1] => [
    [0] => MNO
    [1] => 123A
    [2] => 123B
    [3] => 123C
],
// ...

如果您使用var_dump($myArray[0]);,您将获得&#34;第一个&#34; set(数组为0索引):

[0] => ABC
[1] => DEF
[2] => GHI
[3] => JKL

var_dump($myArray[1]);为您提供第二组:

[0] => MNO
[1] => 123A
[2] => 123B
[3] => 123C

等...

多维数组中的键可以对应于按下的按钮,例如

  • 按钮1:$myArray[0]
  • 按钮2:$myArray[1]
  • 按钮3:$myArray[2]
  • 按钮4:$myArray[3]