我创建了2个数组,我试图将我的第一个数组显示给另一个数组。所以我使用了foreach语句,所以我可以像我这样在第二个数组中显示每个值
<?php
$first = array('12:00 AM', '1:00 AM', '2:00 AM', '3:00 AM', '4:00 AM', '5:00 AM', '6:00 AM', '7:00 AM', '8:00 AM', '9:00 AM', '10:00 AM', '11:00 AM');
$2nd = array('body' =>array(),);
foreach($first as $value){
$2nd['body'] = $value;
}
echo json_encode($2nd); ?>
问题只有11:AM正在显示。那么在我的代码中我的问题是什么呢?我真的需要你的帮助。我愿意听。感谢
答案 0 :(得分:2)
首先:您无法使用数字(PHP Docs)启动变量名称,其次需要将值附加(added []
)到数组,否则您将只获得最后一个值。
$first = array( '12:00 AM', '1:00 AM', '2:00 AM', '3:00 AM', '4:00 AM', '5:00 AM', '6:00 AM', '7:00 AM', '8:00 AM', '9:00 AM', '10:00 AM', '11:00 AM' );
$second= array( 'body' => array(), );
foreach ( $first as $value ) {
$second['body'][] = $value;
}
echo json_encode($second);
您也可以使用更短的方式:
$first = array( '12:00 AM', '1:00 AM', '2:00 AM', '3:00 AM', '4:00 AM', '5:00 AM', '6:00 AM', '7:00 AM', '8:00 AM', '9:00 AM', '10:00 AM', '11:00 AM' );
$second = array( 'body' => $first );
echo json_encode( $second );
答案 1 :(得分:1)
您可以使用=
php equal operator
$first = array( '12:00 AM', '1:00 AM', '2:00 AM', '3:00 AM', '4:00 AM', '5:00 AM', '6:00 AM', '7:00 AM', '8:00 AM', '9:00 AM', '10:00 AM', '11:00 AM' );
$second['body'] = $first;
print json_encode($second);
提示:变量名称不能以数字开头,因此将$2nd
重命名为$second
http://php.net/manual/en/language.variables.basics.php
此处工作示例https://eval.in/443545
答案 2 :(得分:0)
更改变量名称。 (即)不能以digit
开头。
考虑将其用作$second
$first = array( '12:00 AM', '1:00 AM', '2:00 AM', '3:00 AM', '4:00 AM', '5:00 AM', '6:00 AM', '7:00 AM', '8:00 AM', '9:00 AM', '10:00 AM', '11:00 AM' );
$second= array( 'body' => array(), );
foreach ( $first as $value )
{
$second['body'][] = $value;
}
echo json_encode($second);
答案 3 :(得分:0)
您不会将$first
的值附加到$second['body']
,而是覆盖它们。
使用array_push
函数或$second['body'][] = $value;
编辑:是的,当然,尊重变量命名规则,如其他答案所述。