[英]I don't understand this array usage
首先,我对标题表示歉意,但没有找到解决这个问题的好方法。
我正在一个已经存在的Symfony项目中,我需要添加一些东西。 因此,我在阅读它时发现使用数组,但我不了解它是如何工作的。
$this->categories = Doctrine_Query::create()
->from('Category c')
->leftJoin('c.Sizings s')
->where('c.level = 0')
->orderBy('c.id ASC, s.gender ASC, s.size ASC')
->execute();
$rCategories = Doctrine_Query::create()
->from('Category c');
$allCategories = $rCategories->execute();
$cat = array();
foreach($allCategories as $c) {
[...]
$cat[$c->getRootId()]['children'][$c->getId()]['root'] = $c;
[...]
所以我做了一些测试,看看如何访问值和这个:
$cat[$c->getRootId()]['children'][$c->getId()]['root'] = $c;
foreach($cat as $ca){
print($ca['root']);
echo '<br/>';
foreach($ca['children'] as $child){
print($child['root']);
}
}
die;
显示:
Tennis Racket //This is the main category Thunder //And this is a subcategory
首先,为什么不是ID而不是Names?
该代码的确切含义是什么?
$cat[$c->getRootId()]['children'][$c->getId()]['root'] = $c;
最后是这样的:
$this->allCategories = $cat;
我将在局部中使用$allCategories
以便显示每个类别及其子类别,然后将其包含在indexSuccess中。
但是,这是最后一点,我必须有一个新的专栏。 该列已经在数据库中,我可以使用以下方法在actionclass中访问其值
$c->getBrand();
我想将其放入数组cat中,然后放入$this->allCategories
以便可以在indexSuccess中使用的局部中访问它,并最终在局部中使用的列品牌中设置值。
恐怕我还不够清楚,但总而言之:我不明白这句话:
$cat[$c->getRootId()]['children'][$c->getId()]['root'] = $c;
我想在数组$ cat中有一个新参数,并在将新值赋给indexsuccess后访问它
$this->allCategories = $cat;
我想知道如何获取新价值。
我希望我已经足够清楚了,谢谢您抽出宝贵的时间阅读本文。
首先,由于您不包含$c
任何代码,因此很难理解其实际包含的内容。 简而言之, $c
是某种类的实例。
它很可能以这种方式出现:
$c = new someSortOfClass;
如果您检出someSortOfClass
的代码, someSortOfClass
在其定义内找到getRootId()
和getId()
作为方法。 它们的工作取决于代码,并且由于没有代码可查找-我假设它们返回某种值,该值可以是array
的key
或index
。
接下来会发生什么-在多维数组中创建新元素,并将整个实例$c
分配给第4级'root'
数组键:
$cat[$c->getRootId()]['children'][$c->getId()]['root'] = $c;
如果您制作了var_dump($cat)
,则将看到此数组的整个树,然后可以欣赏它的多维性。
本质上-php数组可以具有任何类型的值,包括其他数组,因此:
$array = Array('key1': 'string', 'key2': Array('child_key1': 2));
print $array['key2']['child_key1']; // 2
就是这样一个数组的例子。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.