dyl*_*zed 15 php arrays object
这是一个奇怪的问题.我手动构建一个对象数组,如下所示:
$pages_array[0]->slug = "index";
$pages_array[0]->title = "Site Index";  
$pages_array[0]->template = "interior";
$pages_array[1]->slug = "a";
$pages_array[1]->title = "100% Wide (Layout A)";
$pages_array[1]->template = "interior";
$pages_array[2]->slug = "homepage";
$pages_array[2]->title = "Homepage";
$pages_array[2]->template = "homepage";
我喜欢这是多么明确,但因为我必须指定索引号,所以我不能轻易地重新排列它们.如果没有索引号怎么办呢?相关的,有什么更好的方法呢?
我也尝试通过创建一个类来编写它,并让数组上的每个点都是该类的实例.但由于这是一个配置文件,因此很难阅读并知道参数是什么参数.这就是我选择上述老式方法的原因.
任何想法都非常感谢!
use*_*291 29
这段代码
 $pages_array[1]->slug = "a";
无论如何都是无效的 - 如果你没有正确初始化对象,你会得到一个"严格"的警告.所以你必须以某种方式构造一个对象 - 使用构造函数:
 $pages_array[] = new MyObject('index', 'title'....)
或者使用stdclass演员
 $pages_array[] = (object) array('slug' => 'xxx', 'title' => 'etc')
jam*_*ace 11
有以下三种方式:
方式一:
$pages_array=[
    [
        "id" => 1,
        "name" => "James"
    ],
    [
        "id" => 2,
        "name" => "Mary"
    ]
];
方式2:
 $pages_array[0] =
    [
        "id" => 1,
        "name" => "James"
    ];
 $pages_array[1] = 
    [
        "id" => 2,
        "name" => "Mary"
    ];
方式3:
$pages_array = array(
    array(
      "id" => 2,
      "name" => "Mary"
    ),
    array(
      "id" => 1,
      "name" => "James"
    ),
   
);
如果你使用命名键而不是对象创建数组,你可以这样做:
$pages_array = array(
     array(
         'slug' => 'index',
         'title' => 'Site Index',
         'template' => 'interior'
     ),
     array(
         'slug' => 'a',
         'title' => '100% Wide (Layout A)',
         'template' => 'interior'
     ),
     array(
         'slug' => 'homepage',
         'title' => 'Homepage',
         'template' => 'homepage'
     )
);
您可以将此与Fanis的解决方案结合使用,并根据需要使用slugs作为键.