有沒有辦法用 preg_replace 或其他 php 代碼做到這一點?我有一個看起來像這樣的字符串:[[10],[11],[2],[3],[5],[1],[10],[15],[20],[21],[14],[16],[17],[6],[9],[4]]我想這樣顯示:[[10,11],[2,3],[5,1],[10,15],[20,21],[14,16],[17,6],[9,4]]所以我替換了“],[”部分 str_replace$xy1 = str_replace('],[', ',', $xy1);現(xiàn)在看起來像這樣:[[10,11,2,3,5,1,10,15,20,21,14,16,17,6,9,4]]但是我需要在每個第二個數(shù)字之后添加一個額外的“]”,并在每個第二個逗號之后添加一個額外的 [ 例如:[[10,11],[2,3],[5,1]
2 回答

慕運維8079593
TA貢獻1876條經(jīng)驗 獲得超5個贊
幾種可能性:
該字符串是有效的 JSON,無論它是否有意,因此您可以對其進行解碼、對結(jié)果數(shù)組進行分塊并重新編碼。
$result1 = json_encode(array_chunk(array_column(json_decode($string),0),2));
如果您通過在以前的代碼中生成字符串,json_encode那么array_chunk在那時使用會更好,但如果它來自其他來源,您顯然不能這樣做。
對于這個特定的字符串,將數(shù)字與正則表達式配對可能不那么麻煩。
$result2 = preg_replace('/(\d+)\D+(\d+)/', '$1,$2', $string);
或者兩種方式的組合,提取所有數(shù)字,然后分塊和編碼。
preg_match_all('/\d+/', $string, $numbers);
$result3 = json_encode(array_chunk($numbers[0], 2), JSON_NUMERIC_CHECK);

千萬里不及你
TA貢獻1784條經(jīng)驗 獲得超9個贊
這可能會有所幫助,提取嵌套的數(shù)組值,然后按對分組。
$newArray = array_chunk( array_column( $array, 0 ), 2 );
- 2 回答
- 0 關(guān)注
- 159 瀏覽
添加回答
舉報
0/150
提交
取消