【发布时间】:2014-10-08 23:47:13
【问题描述】:
我有一个这样的数组:
// Define pages
$pages = array(
"home" => array(
"title" => "Home page",
"icon" => "home"
),
"compositions" => array(
"title" => "Composition page",
"icon" => "music"
),
);
而我想要完成的是,拥有:
$navigation = Utils::makeNavigation($pages);
,创建$navigation作为对象数组,这样我可以在我的视图中解析它
像这样:
foreach($navigation as $nav_item){
echo $nav_item->page; // home(1st iter.), compositions(2nd iter.)
echo $nav_item->title;// Home page, Composition page
echo $nav_item->icon; // home, music
}
staticUtil-like-class 方法对这类问题有用吗?
编辑
我想出了这样的东西,这看起来可以吗?
<?php
class Utils {
protected static $_navigation;
public static function makeNavigation($pages = array()){
if (!empty($pages)){
foreach ($pages as $page => $parts) {
$item = new stdClass;
$item->page = $page;
foreach ($parts as $key => $value) {
$item->$key = $value;
}
self::$_navigation[] = $item;
}
return self::$_navigation;
}
}
}
【问题讨论】:
-
你区分“好”和“坏”的标准是什么?
-
@zerkms 请看我的编辑..
-
什么是“好”?可以客观衡量吗?对一个人来说“ok”,对另一个人来说是“not ok”。这对我来说“不好”——我会改用
array_map。这算作答案吗? -
你能举一个关于我的情况的小例子吗,你会如何使用
array_map? -
我会用它来代替循环