将PHP字符串值添加到JSON数组

时间:2019-12-07 18:21:37

标签: php arrays json

我明白了:

$arr = json_decode($arr, TRUE);
while($row){
    // $arr[] = ['id' => '8', 'name' => 'mickey'];
    $test = $row->TCI_LIBELLE;
    $arr[] = ['id' => $row->TCI_ID, 'name' => $row->TCI_LIBELLE];
    $i +=1;
    $row = $reqCentreInteret->fetch(PDO::FETCH_OBJ);
    $json = json_encode($arr);

如果您不理解,我尝试将从Select SQL查询中获得的值放入JSON数组中。 问题是它不能像我想要的那样工作。 实际上,它可以与我的id一起使用,因为在我的数据库中它是一个int值,但是对于名称却不起作用,因为它是一个varchar值

这就是我想要获得的:

[{"id":"8","name":"mickey"},{"id":"8","name":"mickey"}]

在这里,“ mickey”将替换为将由我的sql查询初始化的php字符串的值

我已经尝试使用来解决问题

'name' => '" .$row->TCI_LIBELLE."' 

但这不起作用

如何将字符串值(或其他类型)传递给JSON数组?

我正在使用PHP和JSON从MySQL向Android应用发送值。

2 个答案:

答案 0 :(得分:0)

arr [] =向数组添加新行,即新的顶级元素。

您可能想将数据添加到现有元素中

比方说,您的arr最初是

[ 'property1' => 'value1',
  'property2' => 'value2'
 ...]

做事时

 arr[] = ['id'=> 8,'name' => 'mickey']

您的数组现在将包含2个顶级元素,看起来像

  [[ 'property1' => 'value1',
    'property2' => 'value2'
    ...
   ],

   [ 'id'   => 8,
     'name' => 'mickey'
   ]
  ]

您可能想代替

 arr['id'] = $row->TCI_ID;
 arr['name'] =  $row->TCI_LIBELLE;

然后您的arr将如下所示:

  [ 'property1' => 'value1',
    'property2' => 'value2'
    'id'        => 8
    'name'      => 'mickey'
    ...
  ]

答案 1 :(得分:0)

最后这就是要做的事情

$stmt = $db->query("SELECT TCI_ID AS id, TCI_LIBELLE AS nom FROM 
OSO_DEV.T_CENTRE_INTERET");
echo json_encode($stmt->fetchAll(PDO:: FETCH_ASSOC),JSON_UNESCAPED_UNICODE);