簡體   English   中英

使用php在一對2中分割逗號分隔的字符串

[英]split a comma separated string in a pair of 2 using php

我有一個字符串有128個值的形式:

1,4,5,6,0,0,1,0,0,5,6,...1,2,3.

我希望以下列形式配對:

(1,4),(5,6),(7,8)

這樣我就可以使用PHP為64個數據創建一個for循環。

您可以通過以下步驟完成此操作:

  1. 使用explode()將字符串轉換為數字數組

  2. 使用array_chunk()形成兩個組

  3. 使用array_map()將每個組轉換為帶括號的字符串

  4. 使用join()將所有內容粘合在一起。

你可以使用這種美味的單行,因為每個人都喜歡這些:

echo join(',', array_map(function($chunk) {
    return sprintf('(%d,%d)', $chunk[0], isset($chunk[1]) ? $chunk[1] : '0');
}, array_chunk(explode(',', $array), 2)));

演示

如果最后一個塊小於兩個項,則它將使用'0'作為第二個值。

<?php
$a = 'val1,val2,val3,val4';

function x($value)
    {
        $buffer = explode(',', $value);
        $result = array();

        while(count($buffer))
            { $result[] = array(array_shift($buffer), array_shift($buffer)); }

        return $result;
    }

$result = x($a);

var_dump($result);
?>

顯示:

array(2) { [0]=> array(2) { [0]=> string(4) "val1" [1]=> string(4) "val2" } [1]=> array(2) { [0]=> string(4) "val3" [1]=> string(4) "val4" } }

如果修改它,那么它可能會幫助你這樣:

<?php
$a = '1,2,3,4';

function x($value)
    {
        $buffer = explode(',', $value);
        $result = array();

        while(count($buffer))
            { $result[] = sprintf('(%d,%d)', array_shift($buffer), array_shift($buffer)); }

        return implode(',', $result);
    }

$result = x($a);

var_dump($result);
?>

這表現了:

string(11) "(1,2),(3,4)"

暫無
暫無

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

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