我有一个数组 $myArray
Array (
[0] => Array (
[Number] => 039
[Fruit] => Apple
[Level] => Low
[Names] =>
Array (
[6] => Name 1
[7] => Name 2
[19] => Name 3
[25] => Name 4
)
)
[0] => Array (
[Number] => 007
[Fruit] => Plum
[Level] => High
[Names] =>
Array (
[3] => Name 1
[5] => Name 2
[9] => Name 3
[11] => Name 4
[12] => Name 5
[19] => Name 6
[22] => Name 7
[30] => Name 8
)
)
[0] => Array (
[Number] => 486
[Fruit] => Grape
[Level] => Medium
[Names] =>
Array (
[6] => Name 1
[15] => Name 2
)
)
我想循环遍历这个数组以获取所有名称集,然后我稍后将通过 javascript 在 html 中显示它们
for($index=0; $index < count($myArray); $index++){
$name = array_values(array_filter($myarray[$index]["Name"]));
<button type="button" class="open-my-modal btn btn-primary"
data-names="'.$name.'"
Names 的输出如下
Array (
[0] => Name 1
[1] => Name 2
[2] => Name 3
[3] => Name 4
)
Array (
[0] => Name 1
[1] => Name 2
[2] => Name 3
[3] => Name 4
[4] => Name 5
[5] => Name 6
[6] => Name 7
[7] => Name 8
[8] => Name 9
)
Array (
[0] => Name 1
[1] => Name 2
)
稍后在我的代码中,我想循环每组数字并将它们打印到屏幕上。例如循环遍历第一个数组并打印名称 1-4。
我收到错误
Notice: Array to string conversion
关于 data-names="'.$name.'"
我如何传递名称数组,以便稍后可以在 html 中调用它们。
另外:我正在一个巨大的 php 函数中编写此内容,因此 php 写得很简单,而 html 则用引号引起来。屏幕上显示的任何内容都会附加到返回变量中。
最佳答案
您收到的错误表明您正在尝试像处理字符串一样连接数组。 你做不到。
您可以使用implode
将数组连接到带有deilimeter的字符串(用于java脚本使用)
echo '<button data-number="'.implode(',', $numbers).'">Button</button>'
它会产生这样的 HTML:
<button data-number="1,2,3,4">Button</button>
你可以用java脚本分割
它并循环数字
*编辑 如果您的数组包含四个数组,您将需要另一个循环将数组合并到一个数组
关于javascript - 将php数组值循环到html数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45270554/