我从一些WordPress自定义字段得到一些数组:
$content = array(get_post_meta($postId, 'content'));
$media = array(get_post_meta($postId, 'media'));
$yt = array(get_post_meta($postId, 'youtube'));
然后我需要按顺序打印,例如:
媒介
内容物
链接
嵌入
并对每个值重复该序列
media
content
LInk
Embed
对于序列,我将使用以下内容:
echo '<ul>';
for ($i = 0; $i < count($all_array['media']); $i++) {
for ($j = 0; $j < count($all_array['content']); $j++) {
for ($k = 0; $k < count($all_array['youtube']); $k++) {
echo '<li>media->' . $all_array['media'][$i] . '</li>';
echo '<li>content->' . $all_array['content'][$j] . '</li>';
echo '<li>link->' . $all_array['link'][$k] . '</li>';
}
}
}
echo '</ul>';
但是我在合并3个字段时做了一些错误的操作,就好像我在运行for
位之前做了一个var_dump
,比如
echo '<pre>' . var_export($all_array, true) . '</pre>';
那么我得到的结果是这样的,我不能按我的意愿迭代:
array (
0 =>
array (
0 =>
array (
0 => '
brother
',
1 => '
Lorem
',
2 => '
End it
',
),
1 =>
array (
0 => '337',
1 => '339',
),
2 =>
array (
0 => 'https://www.youtube.com/watch?v=94q6fzbJUfg',
),
),
)
实际上,我在html中寻找的布局是:
1.影像
1.内容物
1.连结
1.影像
1.内容物
1.链接⋯
更新
我是这样合并数组的:
foreach ( $content as $idx => $val ) {
$all_array[] = [ $val, $media[$idx], $yt[$idx] ];
}
以下是关联数组的外观:
内容:
array (
0 =>
array (
0 => '
brother
',
1 => '
Lorem
',
2 => '
End it
',
),
)
媒体
array (
0 =>
array (
0 => '337',
1 => '339',
),
)
Youtube视频
array (
0 =>
array (
0 => 'https://www.youtube.com/watch?v=94q6fzbJUfg',
),
)
2条答案
按热度按时间gpnt7bae1#
我解决这个问题的方法是,首先计算每个数组中的tot. items,然后得到包含max items的数组,循环并按顺序添加元素:
最后我可以循环:
wlzqhblo2#
你不需要把数组合并在一起。它在单独的数组中工作得很好。但是,你的
for
循环没有正确的逻辑。尝试: