遍历数组中已知数量的元素,并获取关键的PHP
我有一个网站,我正在使用php打印数组中的键和值遍历数组中已知数量的元素,并获取关键的PHP,php,arrays,for-loop,Php,Arrays,For Loop,我有一个网站,我正在使用php打印数组中的键和值 $array = array( "gfo" => "Fondant", "gdo" => "Domino", "ges" => "Espir", "gam" => "Amara", "gsa" => "Sandwich", "gme" => "Merme", "cza" => "Zarza", "cor" =&
$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;
}
对于($i=1;$i您可以使用array\u chunk
将数组拆分为两个单独的块,然后对其中的每个块进行迭代:
$chunked = array_chunk($array, 6);
用slice()试试
然后做你的动作,你也可以用
$first_array = array_chunk($array,6);
$second_array = array_chunk($array,6,10);
您可以使用每个:
$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_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>
}
$array=array(
“gfo”=>“方丹”,
“gdo”=>“Domino”,
“ges”=>“Espir”,
“gam”=>“Amara”,
“gsa”=>“三明治”,
“gme”=>“Merme”,
“cza”=>“Zarza”,
“cor”=>“奥利奥”,
“cal”=>“Almen”,
“cca”=>“eche”,
“cch”=>“巧克力”
);
$keys=数组\ U键($array);
$values=array\u值($array);
对于($i=0;$i<6;$i++){
}
及
对于($i=6;$i array\u slice()是一种方法,但是我想建议,array\u slice不保留关联数组键。@Jeff仅当它们是数字的(此处没有),并且仅当您不使用标志“preserve\u keys”(5.0.2+)
$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";
}
$first_six = array_slice($array, 0, 6, true);
$rest = array_slice($array, 6, null, true);
$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>
}