组合索引

/**
     * 重置指定数组的索引为元素中的指定值, 一般用于将数据库查询获取的多条记录的数字索引改为记录主键格式
     * @param array $dataArray        
     * @param string $newIndexSource
     *        必须位于第二维, 如果是多个作为组合索引, 则传入数组即可, 如: array('id', 'type')
     * @param string $delimiter        
     * @param bool $unsetIndexKey        
     * @return array
     */
    public function resetArrayIndex( $dataArray, $newIndexSource, $delimiter = ':', $unsetIndexKey = false ){
        $resultArray = array();
        foreach( $dataArray as $k=>$v ) {
            // string格式的单key索引, 则直接赋值, 继续下一个
            if( is_string( $newIndexSource ) ) {
                $resultArray[$v[$newIndexSource]] = $v;
                if( $unsetIndexKey )
                    unset( $v[$newIndexSource] );
                continue;
            }
            // 数组格式多key组合索引处理
            $k = '';
            foreach( $newIndexSource as $index ) {
                $k .= "{$v[$index]}{$delimiter}";
                if( $unsetIndexKey )
                    unset( $v[$index] );
            }
            $k = rtrim( $k, $delimiter );
            $resultArray[$k] = $v;
        }
        return $resultArray;
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值