2

私はウェブサイトを持っており、配列からキーと値の両方を出力するためにphpを使用しています

$array = array(
    "gfo"   => "Fondant",
    "gdo"   => "Domino",
    "ges"   => "Espir",
    "gam"   => "Amara",
    "gsa"   => "Sandwich",
    "gme"   => "Merme",
    "cza"   => "Zarza",
    "cor"   => "Oreo",
    "cal"   => "Almen",
    "cca"   => "eche",
    "cch"   => "Chocolate"
);

しかし、次のようなメニューに最初の6つの要素のみを表示したい

<li>
<a href="product1.php" style="padding:8px 30px;">Product 1</a>
  <ul>                
     <?php foreach($array as $key=>$val):?>
    <li><a href="http://www.site.com.mx/products.php?id=<?=$key?>"><?=$val?></a></li>
     <?php endforeach;?>
  </ul>
</li>

そして、他のメニューの他の5つの要素

<li>
<a href="product2.php" style="padding:8px 30px;">Product 2</a>
  <ul>                
     <?php foreach($array as $key=>$val):?>
    <li><a href="http://www.site.com.mx/products.php?id=<?=$key?>"><?=$val?></a></li>
     <?php endforeach;?>
  </ul>
</li>

私は私が使用できることを知っています

for ($i = 1; $i <= 6; $i++) {
    echo $i;
}

for ($i = 6; $i <= sizeof($array); $i++) {
    echo $i;
}

しかし、両方の for ループでキーと値を取得するにはどうすればよいでしょうか?

4

4 に答える 4

1

スライス()で試してください

$first_array = slice_array($array,0,6);
$second_array = slice_array($array,6,10);

そしてあなたの行為をしてください、あなたも使うことができます

$first_array = array_chunk($array,6);
$second_array = array_chunk($array,6,10);
于 2012-09-25T04:19:17.163 に答える
1

を使用array_chunkして、配列を 2 つの個別のチャンクに分割し、それぞれを反復処理できます。

$chunked = array_chunk($array, 6);
于 2012-09-25T04:16:16.517 に答える
1

そのために使用できますeach

$i = 1; reset($array);
// get the first 6
while ($i <= 6 && list($key, $val) = each($array)) {
        echo "$key = $val\n";
        ++$i;
}

// get the rest    
while (list($key, $val) = each($array)) {
        echo "$key = $val\n";
}

または、次のキーを使用することもできますarray_slice()が、必ずキーを保持してください。

$first_six = array_slice($array, 0, 6, true);
$rest = array_slice($array, 6, null, true);
于 2012-09-25T04:51:52.440 に答える
0

array_keys()およびarray_values()関数を使用する

$array = array(
    "gfo"   => "Fondant",
    "gdo"   => "Domino",
    "ges"   => "Espir",
    "gam"   => "Amara",
    "gsa"   => "Sandwich",
    "gme"   => "Merme",
    "cza"   => "Zarza",
    "cor"   => "Oreo",
    "cal"   => "Almen",
    "cca"   => "eche",
    "cch"   => "Chocolate"
);
$keys = array_keys($array);
$values = array_values($array);

for ($i = 0; $i < 6; $i++) {
    <li><a href="http://www.site.com.mx/products.php?id=<?=$keys[$i]?>"><?=$values[$i]?></a></li>
}

for ($i = 6; $i <= sizeof($array); $i++) {
    <li><a href="http://www.site.com.mx/products.php?id=<?=$keys[$i]?>"><?=$values[$i]?></a></li>
}

必要なオープン/クローズphpタグを入れます

于 2012-09-25T05:17:43.227 に答える