我正在尝试将字符串和数组与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"
谢谢,
答案 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的回答中找到......