定制虽然在JSON数组
问题描述:
它我的PHP代码:定制虽然在JSON数组
$res_media=mysql_query("SELECT * FROM mv_media");
$media = array();
while($resualt_media = mysql_fetch_assoc($res_media)) {
$media[]= $resualt_media['title'];
}
echo $media;
及其我的输出:
["Test","Test","Test","Test","Test"]
我想将其更改为以下格式:
["Test"],["Test"],["Test"],["Test"],["Test"]
我改变了我此代码的代码:
$res_media=mysql_query("SELECT * FROM mv_media");
$media = array();
while($resualt_media = mysql_fetch_assoc($res_media)) {
$media[]= [$resualt_media['title']];
}
echo $media;
现在我的输出:
[["Test","Test","Test","Test","Test"]]
但我需要这个自定义输出:
[["Test"],["Test"],["Test"],["Test"],["Test"],["ItsMyCustomChild"]]
我想添加自定义子与出库!
答
您可以将$media[] = [<value>]
更改为$media[][] = <value>
并且它可以工作,因为您将在数组内创建一个新数组。
答
我建议这种做法:
<?php
$input = json_decode('["Test","Test","Test","Test","Test"]');
$output = [];
array_walk($input, function($element) use (&$output) {
$output[] = [$element];
});
var_dump(json_encode($output));
或者这可以简化为:
<?php
$data = json_decode('["Test","Test","Test","Test","Test"]');
array_walk($data, function(&$element) {
$element = [$element];
});
var_dump(json_encode($data));
创建的阵列结构显然是:
Array
(
[0] => Array
(
[0] => Test
)
[1] => Array
(
[0] => Test
)
[2] => Array
(
[0] => Test
)
[3] => Array
(
[0] => Test
)
[4] => Array
(
[0] => Test
)
)
其中,如果您它再次json_encode()
它,结果在所需的格式:
string(46) "[["Test"],["Test"],["Test"],["Test"],["Test"]]"
您实际处理的具体问题与创建所需结构并非如此,而是您尝试修改JSON字符串而不是您想要使用的实际数组。这就是最初使用json_decode()
的原因。
答
$res_media=mysql_query("SELECT * FROM mv_media");
$media = array();
while($resualt_media = mysql_fetch_assoc($res_media)) {
array_push($media,array($resualt_media['title']));
}
print_r $media;
答
你只需要改变下面的行。你会得到你想要的结果。
$media[][]= $resualt_media['title'];
如果你想看看你得到什么。你需要在这段时间之后添加json_encode()。 like below
echo json_encode($media);
请使用mysqli或PDO代替数据库连接。当您切换到7.0或更高版本时,您的代码将无法工作 – jens1o
我知道,但它可以,不用担心 –