一個關於數組迴圈的問題

來源:互聯網
上載者:User
現有一數組如下
$array = array ('A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z' );


需要迴圈數組實現以下效果
ABCDEF
abcdef
GHIJKL
ghijkl
MNOPQR
mnopqr
STUVWX
stuvwx
YZ
yz


請問各位該如何?呢


回複討論(解決方案)

$array = array ('A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z' );for($i=0; $i', PHP_EOL;  $t1 = array_keys(array_slice($array, $i, 6)) + array_fill(0, 6, '');  $t2 = array_values(array_slice($array, $i, 6)) + array_fill(0, 6, '');  foreach($t1 as $v) {    echo "  $v", PHP_EOL;  }  echo '', PHP_EOL;  echo '', PHP_EOL;  foreach($t2 as $v) {    echo "  $v", PHP_EOL;  }  echo '', PHP_EOL;}
  A  B  C  D  E  F  a  b  c  d  e  f  G  H  I  J  K  L  g  h  i  j  k  l  M  N  O  P  Q  R  m  n  o  p  q  r  S  T  U  V  W  X  s  t  u  v  w  x  Y  Z          y  z        

 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z' );;  $keys = array_chunk(array_keys($array),6);  $values = array_chunk(array_values($array),6);  $newArray = array();  foreach($keys as $key=>$item){    $newArray[] = $item;    $newArray[] = $values[$key];  }  $html = '' . PHP_EOL;  foreach($newArray as $value){    $tr = ''. PHP_EOL;    for($i=0;$i<6;$i++){      $text = empty($value[$i])?'':$value[$i];      $tr .=  "". PHP_EOL;    }   $tr .= ''. PHP_EOL;   $html .= $tr;  }  $html .= '
$text
'. PHP_EOL; echo $html; ?>

ABCDEF
abcdef
GHIJKL
ghijkl
MNOPQR
mnopqr
STUVWX
stuvwx
YZ
yz

foreach(array_chunk(array_keys($array), 6) as $v){     $len = count($v); if($len < 6){     $v = array_merge($v, array_fill(0, 6-$len, '')); }     echo "\n"; echo "".implode("\n",$v)."\n"; echo "\n";  $vl = array_map('strtolower', $v); echo "\n"; echo "".implode("\n",$vl)."\n"; echo "\n"; }

感謝幾位大神的回複 小弟收益匪淺, jordan102 版主可能沒理解這個問題的本質其實是想隔行顯示標題和內容 ,而不是把大寫轉為小寫問題 ,可能是我給的數組誤導了你,不過如果針對我給數組,你的思路也很值得學習, 再次感謝幾位

樓主新人啊!加油!過來湊個熱鬧!

php 有豐富的數組函數,這裡再提供一種寫法

$array = array ('A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z' );$a = array_map(null, array_chunk(array_keys($array), 6), array_chunk($array, 6));foreach($a as $rs)  foreach($rs as $r) {    echo "\n";    if(count($r) < 6) $r = array_pad($r, 6, '');    foreach($r as $v) echo "$v\n";    echo "\n";  }

一層迴圈便可。

$arr = array ('A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z' );$page = (int)((count($arr)-1)/6)+1;echo '';for($i=0; $i<$page; $i++){    echo '';    echo '';    echo '';    echo '';    echo '';    echo '';}echo '
'.implode('',array_pad(array_keys(array_slice($arr, $i*6, 6)),6,'')).'
'.implode('',array_pad(array_slice($arr, $i*6, 6),6,'')).'
';
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.