拆分每个数组值,然后在PHP中将其转换为json


Split each array values and then convert into json in PHP

我有这样的数组值:

   Array ( [cont_no] => Array ( [0] => 43-15 [1] => 44-18 )

现在我需要拆分每个数组值,43-15应该使用"-"这个键进行拆分,然后转换为JSON类型:

{"employees":[
    {"cont_no":"43", "repo_id":"15"}, 
    {"cont_no":"44", "repo_id":"18"}, 
]}

我认为这将适用于

$jsonme =["employees"=>[]];
foreach( $ar as $a){
    $vals = explode("-", $a[0]);
    $jsonme["employees"]=[
         "yourkey1" => $vals[0],
        "yourkey2" => $vals[1]
];
$json = json_encode($jsonme);

将密钥替换为嵌套json中所需的密钥。(另外,还没有测试过,但我认为它是正确的)

使用此代码

 $arr = array (cont_no => array ( 0 => '43-15', 1 => '44-18' ));
$finalArr['employees'] = array();
foreach($arr['cont_no'] as $val)
{
    $out = explode('-',$val);
    $finalArr['employees'][]['cont_no'] = $out['0'];
    $finalArr['employees'][]['repo_id'] = $out['1'];
}
echo json_encode($finalArr);
<?php
$src = [ 'cont_no' => [
    '43-15', '44-18'
]];
$target = array_map(
    function($e) {
        return array_combine(
            ['cont_no', 'repo_id'],
            explode('-', $e)
        );
    },
    $src['cont_no']
);

echo json_encode($target);

打印

[{"cont_no":"43","repo_id":"15"},{"cont_no":"44","repo_id":"18"}]

另请参阅:

  • http://docs.php.net/array_map
  • http://docs.php.net/array_combine
  • http://docs.php.net/manual/en/functions.anonymous.php

试试这个:

json_encode($array[0]);