數組對比效率問題

來源:互聯網
上載者:User
兩個數組,ArrayA和ArrayB

$arrayA = array (  0 => array (    0 => 1,    4 => 1,    6 => 1,  ),  1 => array (    1 => 1,    3 => 1,    5 => 1,  ),  2 => array (    7 => 1,    8 => 1,    9 => 1,  ),);
$arrayB = array (  0 => array (    0 => 'a',    1 => 'b',    2 => 'c',    3 => 'd',    4 => 'e',    5 => 'f',    6 => 'g',    7 => 'h',    8 => 'i',    9 => 'j',  ),  1 => array (    0 => 'a',    1 => 'b',    2 => 'c',    3 => 'd',    4 => 'e',    5 => 'f',    6 => 'g',    7 => 'h',    8 => 'i',    9 => 'j',  ),  2 => array (    0 => 'a',    1 => 'b',    2 => 'c',    3 => 'd',    4 => 'e',    5 => 'f',    6 => 'g',    7 => 'h',    8 => 'i',    9 => 'j',  ),);

希望得到結果

$result = array (  0 => array (    0 => 'a',    4 => 'e',    6 => 'g',  ),  1 => array (    1 => 'b',    3 => 'd',    5 => 'f',  ),  2 => array (    7 => 'h',    8 => 'i',    9 => 'j',  ),);

我現在的做法是做兩層迴圈

$result = array ();foreach ($arrayA as $k => $v) {  foreach ($v as $kk => $vv) {    $result[$k][$kk] = $arrayB[$k][$kk];  }}

有沒有什麼效率更高的方式呢?

回複內容:

兩個數組,ArrayA和ArrayB

$arrayA = array (  0 => array (    0 => 1,    4 => 1,    6 => 1,  ),  1 => array (    1 => 1,    3 => 1,    5 => 1,  ),  2 => array (    7 => 1,    8 => 1,    9 => 1,  ),);
$arrayB = array (  0 => array (    0 => 'a',    1 => 'b',    2 => 'c',    3 => 'd',    4 => 'e',    5 => 'f',    6 => 'g',    7 => 'h',    8 => 'i',    9 => 'j',  ),  1 => array (    0 => 'a',    1 => 'b',    2 => 'c',    3 => 'd',    4 => 'e',    5 => 'f',    6 => 'g',    7 => 'h',    8 => 'i',    9 => 'j',  ),  2 => array (    0 => 'a',    1 => 'b',    2 => 'c',    3 => 'd',    4 => 'e',    5 => 'f',    6 => 'g',    7 => 'h',    8 => 'i',    9 => 'j',  ),);

希望得到結果

$result = array (  0 => array (    0 => 'a',    4 => 'e',    6 => 'g',  ),  1 => array (    1 => 'b',    3 => 'd',    5 => 'f',  ),  2 => array (    7 => 'h',    8 => 'i',    9 => 'j',  ),);

我現在的做法是做兩層迴圈

$result = array ();foreach ($arrayA as $k => $v) {  foreach ($v as $kk => $vv) {    $result[$k][$kk] = $arrayB[$k][$kk];  }}

有沒有什麼效率更高的方式呢?

使用 PHP 的內建函數 array_intersect 即可

參考

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.