首页 > 后端开发 > php教程 > $arrayname[item]=value 与 $arrayname[item]=value 的区别

$arrayname[item]=value 与 $arrayname[item]=value 的区别

WBOY
发布: 2016-06-20 12:43:51
原创
1239 人浏览过

在读wordpress taxonomy.php 源代码时,遇到数组的创建问题,概括起来就是:
$arrayname[item]=value 与 $arrayname[item][]=value 有什么区别吗?在这个例子中,其实就是 数/值交换了下位置,是吗? 请达人指教。
function _get_term_hierarchy( $taxonomy ) 中:

$children = array();

        $terms = get_terms($taxonomy, array('get' => 'all', 'orderby' => 'id', 'fields' => 'id=>parent'));

        foreach ( $terms as $term_id => $parent ) {

                if ( $parent > 0 )

                         $children[$parent][] = $term_id;

        }

在  function get_terms( $taxonomies, $args = '' )中:

 $_terms = array();

        if ( 'id=>parent' == $_fields ) {

                foreach ( $terms as $term ) {

                 $_terms[ $term->term_id ] = $term->parent;

       }

       }


回复讨论(解决方案)

首先  你[ ] 里面不是变量 需要用引号引起来吧 不然..... $arrayname[item]=value 这个是一维数组 将数组$arrayname 建名为 'item' 的元素的值 为 value  而 $arrayname['item'][] = value   是二维数组 将数组$arrayname['item']的下级数组的当前位置的值设为 value

 $children[$parent][] 
 $children[$parent]=可能是一个数组(子项可能很多啊,可以是一个数组)

     $_terms[ $term->term_id ] = $term->parent;
   $_terms[ $term->term_id ]=只能是一个值(父项只能是一个啊)
对否

$_terms[ $term->term_id ] = $term->parent;
用来收集每个 term_id 的 parent 节点(term_id 是唯一的)

$children[$parent][] = $term_id;
用来聚类子节点

前者是直接赋值。
后者是创建数组,然后追加入最后一个元素。

前者是直接赋值。
后者是创建数组,然后追加入最后一个元素。
--‘创建数组,然后追加入最后一个元素’是什么意思?不理解。
$_terms[ $term->term_id ] = $term->parent;
用来收集每个 term_id 的 parent 节点(term_id 是唯一的)

$children[$parent][] = $term_id;
用来聚类子节点
----能理解

$arrayname[item]=value 与 $arrayname[item][]=value 构造成的数组,分别是这样的,对吗?
$aaa = array (
            3=>7,
            6=>9 )

$bbb= array (
            3=>array(
                  0=>8,
                  1=>4,
                           )
                      )

后者是创建数组,然后追加入最后一个元素。
--‘创建数组,然后追加入最后一个元素’是什么意思?不理解。

对于
foreach ( $terms as $term ) {
     $_terms[ $term->term_id ] = $term->parent;
}
由于赋值是在循环中执行的
如果 $term->term_id 不唯一,即 $term->term_id 重复出现
那么,$_terms[ $term->term_id ] 就是最后一次 相同 $term->term_id 的 $term->parent

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板