将字符串和数组与JSON结合使用

时间:2015-01-23 18:45:40

标签: javascript php json

我正在尝试将字符串和数组与JSON结合使用。到目前为止没有成功。

这是PHP代码:

<?php
$url = ‘example.com’;
$data = file_get_contents($url);
$regex = '/list-animal-id">(.+?)</';
$input = ‘testtext';
preg_match_all($regex,$data, $match);
    //var_dump($match);
    //echo  json_encode($match[1]);
$json = array($input, $match[1]);
$json_data = json_encode($json);
echo  $json_data;

?>

$ match返回一个数组,例如:

"22425229","22493325","22596308","24635614","22202322"

以上只创建了一个字符串实例:

["testtext",["22425229","22493325","22596308"......

我想创建这样的东西:

"testtext":"22425229", "testtext":"22425230"

谢谢,

2 个答案:

答案 0 :(得分:1)

您要做的事情是不可能的。 [ "testtext":"22425229", "testtext":"22425230" ]假设一个数组,其中每个键都是“testtext”。您不能重复使用相同键的数组或对象。

你可以做的是创建一个数组数组,其中每个项都是一个关联数组(JSON中的对象):

<?php
$url = 'example.com';
$data = file_get_contents($url);
$regex = '/list-animal-id">(.+?)</';
$input = 'testtext';
preg_match_all($regex,$data, $match);
    //var_dump($match);
    //echo  json_encode($match[1]);

function outputArray( $value ) {
    global $input;
    return array( $input => $value );
}

$json = array_map( 'outputArray', $match );
$json_data = json_encode($json);
echo  $json_data;

?>

输出为:[{"testtext":"22425229"},{"testtext":"22493325"},{"testtext":"22596308"},{"testtext":"24635614"},{"testtext":"22202322"}]

答案 1 :(得分:0)

我的解决方案是错误的,不应该让别人感到困惑......正确的解决方案可以在Jims的回答中找到......