Php 循环前显示数组中的元素
我需要先显示Php 循环前显示数组中的元素,php,arrays,Php,Arrays,我需要先显示数组中的某个对象,然后再显示数组的其余部分 该数组如下所示: Array ( [0] => stdClass Object ( [template_id] => 91 [template_name] => Alphabet [template_thumbnail] => blank-template-thumbnail.jpg [templa
数组中的某个对象
,然后再显示数组的其余部分
该数组如下所示:
Array
(
[0] => stdClass Object
(
[template_id] => 91
[template_name] => Alphabet
[template_thumbnail] => blank-template-thumbnail.jpg
[template_create_date] => 1456821665
[template_customer_id] => 0
[template_is_responsive] => no
[template_type] => builder
[template_category] => simple
[sort] => 2
)
[1] => stdClass Object
(
[template_id] => 92
[template_name] => Blank Template
[template_thumbnail] => blank-template-thumbnail.jpg
[template_create_date] => 1456821670
[template_customer_id] => 0
[template_is_responsive] => no
[template_type] => builder
[template_category] => simple
[sort] => 2
)
[2] => stdClass Object
(
[template_id] => 31
[template_name] => Holiday Specials
[template_thumbnail] => accommodation-1-20110926.jpg
[template_create_date] => 1456821660
[template_customer_id] => 0
[template_is_responsive] => no
[template_type] => builder
[template_category] => Accommodation
[sort] => 3
)
)
我需要先显示空白模板
,然后按字母顺序(现在的顺序)显示其余模板
有没有比在数组中循环两次更优雅的解决方案?数组的大小可以是1(空白模板)到无数对象。$str=“”;
$str="";
for($i=0;$i<=count($arr);$i++){
if($arr[$i]['template_name'] == "Blank Template"){
echo $arr[$i]['template_name'];
}else{
$str .= $arr[$i]['template_name']. "<br>";
}
}
echo $str;
对于($i=0;$i请尝试以下方法:
$firstItem = null;
$outArray = [];
foreach($yourArray as $item){
if($item->template_name == 'Blank Template'){
$firstItem = $item;
}else{
$outArray[$item->template_name] = $item;
}
}
ksort($outArray,SORT_STRING);
array_unshift($outArray,$firstItem);
只需一个循环。请注意,如果模板名称具有唯一性,那么这种方法就可以工作
希望能有所帮助。这对你有用,试试看
<?php
$dataArray = array(0=>array('template_id'=>91,'template_name'=>'Alphabet'),
1=>array('template_id'=>92,'template_name'=>'Blank Template'),
2=>array('template_id'=>31,'template_name'=>'Holiday Specials')
);
$newArray = array();
foreach($dataArray as $key => $val)
{
if(in_array('Blank Template',$val))///find the key for black template
{
unset($dataArray[$key]); ///unset black temp from original array
$newArray[] = $val;///push black temp into new array at 0 index
foreach($dataArray as $k => $v)
{
$newArray[] = $v; ///push the renaming values into new array
}
}
}
echo "<pre>"; print_r($newArray);
?>
< > >强> > /P>在数组中使用TEMPPLAGEID作为索引不是更好吗?然后你可以给空白模板(默认情况下)一个ID并用索引调用它。它回显它。Loop一直构建字符串直到结束,并回显它当前的输出来自何处以及它在那里的顺序如何?@Albert你需要更多的帮助吗?没有一个答案足够好吗?@Andreas尝试了一些,决定用你的答案
Array
(
[0] => Array
(
[template_id] => 92
[template_name] => Blank Template
)
[1] => Array
(
[template_id] => 91
[template_name] => Alphabet
)
[2] => Array
(
[template_id] => 31
[template_name] => Holiday Specials
)
)