簡體   English   中英

如何字符串替換數組中的符號並拆分?

[英]How to string replace a symbol from array and split?

我有

$dataSavedBlocks = get_user_meta( $user_id, 'jsonBlock');
var_dump($dataSavedBlocks);

這使:

array(1) { [0]=> string(534) "{"date":"3/25/20","ricoverati_con_sintomi":999,"terapia_intensiva":251,"totale_ospedalizzati":1250,"isolamento_domiciliare":1526,"totale_attualmente_positivi":2776,"nuovi_attualmente_positivi":257,"dimessi_guariti":54,"deceduti":142,"totale_casi":2972,"tamponi":17868} | ,{"date":"3/25/20","ricoverati_con_sintomi":82,"terapia_intensiva":19,"totale_ospedalizzati":101,"isolamento_domiciliare":311,"totale_attualmente_positivi":412,"nuovi_attualmente_positivi":17,"dimessi_guariti":12,"deceduti":18,"totale_casi":442,"tamponi":3019} | " }

我試過:

$dataSavedBlocks = get_user_meta( $user_id, 'jsonBlock');
$dataCustom = implode("| ,", $dataSavedBlocks[0]); 
$dataCustom = str_replace("| ,",",",$dataCustom);
$dataCustom = explode(",", $dataCustom);

var_dump($dataCustom);

我得到:

Warning: implode(): Invalid arguments passed in ...
array(1) { [0]=> string(0) "" }

我需要一個正確的 json 來在 js 中解析它:

var customJsonData = JSON.parse('<?php echo $dataCustom; ?>');

但我有| , | ,作為分隔符,我在保存時不能出於其他原因排除它。 我究竟做錯了什么?

您需要做的就是更換| 使用空字符串並將結果包裝在方括號中:

$jsonBlock = '{"date":"3/25/20","ricoverati_con_sintomi":999,"terapia_intensiva":251,"totale_ospedalizzati":1250,"isolamento_domiciliare":1526,"totale_attualmente_positivi":2776,"nuovi_attualmente_positivi":257,"dimessi_guariti":54,"deceduti":142,"totale_casi":2972,"tamponi":17868} | ,{"date":"3/25/20","ricoverati_con_sintomi":82,"terapia_intensiva":19,"totale_ospedalizzati":101,"isolamento_domiciliare":311,"totale_attualmente_positivi":412,"nuovi_attualmente_positivi":17,"dimessi_guariti":12,"deceduti":18,"totale_casi":442,"tamponi":3019} | ';

$json = '[' . str_replace(' | ', '', $jsonBlock) . ']';

var_dump($json);

結果將是:

string(530) "[{"date":"3/25/20","ricoverati_con_sintomi":999,"terapia_intensiva":251,"totale_ospedalizzati":1250,"isolamento_domiciliare":1526,"totale_attualmente_positivi":2776,"nuovi_attualmente_positivi":257,"dimessi_guariti":54,"deceduti":142,"totale_casi":2972,"tamponi":17868},{"date":"3/25/20","ricoverati_con_sintomi":82,"terapia_intensiva":19,"totale_ospedalizzati":101,"isolamento_domiciliare":311,"totale_attualmente_positivi":412,"nuovi_attualmente_positivi":17,"dimessi_guariti":12,"deceduti":18,"totale_casi":442,"tamponi":3019}]"

 const json = JSON.parse('[{"date":"3/25/20","ricoverati_con_sintomi":999,"terapia_intensiva":251,"totale_ospedalizzati":1250,"isolamento_domiciliare":1526,"totale_attualmente_positivi":2776,"nuovi_attualmente_positivi":257,"dimessi_guariti":54,"deceduti":142,"totale_casi":2972,"tamponi":17868},{"date":"3/25/20","ricoverati_con_sintomi":82,"terapia_intensiva":19,"totale_ospedalizzati":101,"isolamento_domiciliare":311,"totale_attualmente_positivi":412,"nuovi_attualmente_positivi":17,"dimessi_guariti":12,"deceduti":18,"totale_casi":442,"tamponi":3019}]'); console.log(json);

JS可以處理字符串

 const str = `{"date":"3/25/20","ricoverati_con_sintomi":999,"terapia_intensiva":251,"totale_ospedalizzati":1250,"isolamento_domiciliare":1526,"totale_attualmente_positivi":2776,"nuovi_attualmente_positivi":257,"dimessi_guariti":54,"deceduti":142,"totale_casi":2972,"tamponi":17868} | ,{"date":"3/25/20","ricoverati_con_sintomi":82,"terapia_intensiva":19,"totale_ospedalizzati":101,"isolamento_domiciliare":311,"totale_attualmente_positivi":412,"nuovi_attualmente_positivi":17,"dimessi_guariti":12,"deceduti":18,"totale_casi":442,"tamponi":3019} | " }` .replace(/\\|/g,"").replace(/ " }/,"") console.log(JSON.parse("["+str+"]"))

這是我必須做的和工作的

<?php

    $user_id = get_current_user_id();
    $dataSavedBlocks = get_user_meta( $user_id, 'jsonBlock');
    $dataCustom = json_encode($dataSavedBlocks[0]); 
    $dataCustom = str_replace('|', '', $dataCustom);
    $dataCustom = stripslashes($dataCustom);
?>

js

    var myJson = '<?php echo $dataCustom; ?>';
    var result = myJson.substring(1, myJson.length-1);
    var customJsonData = JSON.parse("["+result+"]");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM