如何在PHP foreach循环中处理变量数据
我正在WordPress主题中使用PHP5.6.30。我正在学习有关foreach循环的更多信息 下面是我的原始代码示例如何在PHP foreach循环中处理变量数据,php,wordpress,Php,Wordpress,我正在WordPress主题中使用PHP5.6.30。我正在学习有关foreach循环的更多信息 下面是我的原始代码示例 $acf_opt01 = "it_development_projects"; $acf_opt01_field = get_field_object($acf_opt01); echo '<h4>' . $acf_opt01_field['label'] . '</h4>';
$acf_opt01 = "it_development_projects";
$acf_opt01_field = get_field_object($acf_opt01);
echo '<h4>' . $acf_opt01_field['label'] . '</h4>';
echo $acf_opt01_field['value'];
$acf_opt02 = "it_enhancements";
$acf_opt02_field = get_field_object($acf_opt02);
echo '<h4>' . $acf_opt02_field['label'] . '</h4>';
echo $acf_opt02_field['value'];
我不确定当使用$key
连接时,foreach循环中如何处理变量,或者是否有更好的方法来完成此过程。在foreach循环中完成这个小练习的建议是什么,以便它产生与我的原始语句相同的结果
非常感谢 像这样
$array_acf_names = array(
'it_development_projects',
'it_enhancements'
);
foreach($array_acf_names as $key=>$acfname) {
$acf_field = get_field_object(acfname);
echo '<h4>' . $acf_field['label'] . '</h4>';
echo $acf_field['value'];
}
在原始的$acf\u opt01=“it\u development\u projects”
中,该字符串现在位于您循环的数组中,因此按照您的方式,它现在是$acfname
变量
在第一次迭代中
$acfname=$acf\u opt01=“it\u开发项目”
这样就不需要为它创建额外的变量,所以我们可以将它放在get\u field\u object()
函数中。然后,我们只需要使我们需要创建的其他变量更加通用$acf_字段
而不是$acf_opt01_字段
或$acf_opt02_字段
,然后只输出HTML内容
然后在第二次迭代中
$acfname=$acf_opt02=“it_增强”
,其余的基本相同
如您所见,您可以在不使用
$key=>
部分的情况下执行循环。不过,把它放在里面也不会有什么坏处。我的答案的主要区别在于它设置了一个数组($fieldObjs),在最初加载后可以部分或完全访问该数组。这让您可以在开始时准备它,然后在页面中使用它——或者您甚至可以使用json_encode()字段对象数组,并在需要时与Javascript一起在页面上创建字段对象,而不是在开始时一次使用PHP:)
不管怎样,这都会解决你的问题。第一个版本是您拥有的最小回音,第二个部分显示字段对象的数组存储:)
当您在二维数组中使用foreach时,“as”之前的值将从数组的每个位置获取值,这段代码可能会有所帮助
<?php
$array_acf_names = array(
'it_development_projects',
'it_enhancements'
);
$cont=0;
foreach($array_acf_names as $key) { //$key get the value from each value of the array (if the array is bidimensional)
echo '<h4>'.$key.'</h4>';
echo $cont; //print the 'position' of the array
$cont++;
}
?>
因此,在foreach循环中使用key没有实际意义,因为您不会使用它,如果您没有在循环之外使用var,那么让var赋值也没有实际意义
$array_acf_names = array(
'it_development_projects',
'it_enhancements'
);
foreach($array_acf_names as $acfname) {
$acf_field = get_field_object($acfname);
echo '<h4>' . $acf_field['label'] . '</h4>';
echo $acf_field['value'];
}
$array\u acf\u names=array(
“it发展项目”,
“it_增强”
);
foreach($array\u acf\u名称为$acfname){
$acf\u field=get\u field\u对象($acfname);
回显'.$acf_字段['label'].';
echo$acf_字段['value'];
}
嘿,大多数答案在这里都适用。问题是什么?您是否考虑过使用for循环。它们更有效和更快:我既包含了前文,也包括在我的答案中,所以你可以选择。谢谢。Nord.Org,我没有考虑过for循环,但是我会考虑它!谢谢你所有的创意,谢谢你分解我的全部代码并给我指点。当然,没问题,很高兴我能帮上忙
<?php
$array_acf_names = array(
'it_development_projects',
'it_enhancements'
);
foreach($array_acf_names as $acfName) {
$fieldObj = get_field_object($acfName);
echo "<h4>{$fieldObj['label']}</h4>
{$fieldObj['value']}";
}
?>
<?php
$array_acf_names = array(
'it_development_projects',
'it_enhancements'
);
$numAcf = count($array_acf_names);
for($acfLoop = 0; $acfLoop < $numAcf; $acfLoop++){
$fieldObj = get_field_object($acfName);
echo "<h4>{$fieldObj['label']}</h4>
{$fieldObj['value']}";
}
?>
<?php
$array_acf_names = array(
'it_development_projects',
'it_enhancements'
);
$fieldObjs = array();
foreach($array_acf_names as $acfName) {
$fieldObjs[$acfName] = get_field_object($acfName);
}
print_r($fieldObjs); // look at this and then you can look at how to declare vars
// example...
// echo $fieldObjs["it_enhancements"]["label"];
?>
<?php
$array_acf_names = array(
'it_development_projects',
'it_enhancements'
);
$cont=0;
foreach($array_acf_names as $key) { //$key get the value from each value of the array (if the array is bidimensional)
echo '<h4>'.$key.'</h4>';
echo $cont; //print the 'position' of the array
$cont++;
}
?>
$array_acf_names = array(
'it_development_projects',
'it_enhancements'
);
foreach($array_acf_names as $acfname) {
$acf_field = get_field_object($acfname);
echo '<h4>' . $acf_field['label'] . '</h4>';
echo $acf_field['value'];
}