php配列をバックエンドでjson形式でエコーしたいと思います。しかし、印刷すると、phpの正しいjsonの前にヌル配列を削除します
[][][][][][][][][][][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][][][][][][][][][][]
[][][][
{
"USER":"root",
"PID":"31692",
"PPID":"31691",
"ELAPSED":"00:05",
"VSZ":"1072408",
"%CPU":"6.2",
"STATE":"S",
"COMMAND":"\/opt\/iims_client\/utils\/nfstop --rpc --interval 60 --sample 2 --mount ALL\n"
},{
"USER":"ctxsrvr",
"PID":"29309",
"PPID":"5152",
"ELAPSED":"9-07:51:37",
"VSZ":"605648",
"%CPU":"0.3",
"STATE":"S",
"COMMAND":"\/opt\/Citrix\/VDA\/bin\/ctxgfx -session 87\n"
}]
が表示されます。「USER」の前にヌル配列は必要ありません。どうすれば削除できますか?ありがとう。ここに私のコードは次のとおりです。
elseif(preg_match("/<toptenproc>/",$line)){
$line=fgets($file,1024);
$line=ltrim($line);
$header=preg_split('/\s+/',$line);
while(!((preg_match("/<\/toptenproc>/",$line)))){
$line=fgets($file,1024);
$line=ltrim($line);
$vars=preg_split('/\s+/',$line,8);
// echo $vars[5];
array_push($result, array($header[0] => $vars[0], $header[1] => $vars[1], $header[2] => $vars[2], $header[3] => $vars[3], $header[4] => $vars[4], $header[5] => $vars[5], $header[6] => $vars[6], $header[7] => $vars[7]));
}
// $result = (object) array_filter((array) $result);
echo json_encode($result);
コードのどこかに出力がある可能性はありますか?それらのヌルは、あなたが投稿したコードのどこから来てはいけません。 – RichGoldMD
@RichGoldMD 'elseif'が実行されるたびに、配列が空であるか、json_encode経由で1つ以上のオブジェクトとともにエコーされます。あなたが '[] [] [] []'に戻る理由は、elseifがループ内で実行されたためです。私は彼が '$ result = array();'を繰り返し実行していると推測しています。whileループがコード内で失敗した場合、彼は '[]'をエコーしています。 – Ultimater
意味@Ultimater – RichGoldMD