openlss/func-mda

PHP的MDA(多维度数组)访问助手

0.0.11 2013-09-08 20:50 UTC

This package is not auto-updated.

Last update: 2024-09-14 12:54:48 UTC


README

PHP的MDA(多维度数组)访问助手

使用方法

$array = array('test'=>array('test2'=>array('test3'=>'value')));

//get a key
$val = mda_get($array,'test.test2.test3'); //returns 'value'

//set a key
mda_set($array,'test.test2.test3','newvalue');

//add a key
mda_add($array,'test.test2.test4','value3');

//get the added key
$val = mda_get($array,'test.test2.test4.0'); //return 'value3'

参考

键(路径)

MDA键在每一个函数中都会使用。有时它们被称为“路径”或“路径”

  • 点符号表示法
  • 表示法:mda_get($arr,'index1.index2.index3.index4.0')
  • 数组:$arr['index1']['index2']['index3']['index4'][0]
  • 参数表示法
  • 表示法:mda_get($arr,'index1','index2','index3','index4','0')
  • 数组:$arr['index1']['index2']['index3']['index4'][0]
  • 混合表示法
  • 表示法:mda_get($arr,'index1.index2.index3','index4','0')
  • 数组:$arr['index1']['index2']['index3']['index4'][0]

(mixed) mda_get(&$arr,$path=null)

从 $arr 返回键

(mixed) mda_set(&$arr,$path=null)

所有设置函数都将值作为最后一个参数 Example

mda_set($arr,'index1','index2','index3.index4','value');

(mixed) mda_add(&$arr,$path=null)

与设置相同,但它将值添加为匿名索引

mda_add($arr,'index1.index2','value');
//is the same as
$arr['index1']['index2'][] = 'value';

(bool) mda_del(&$arr,$path=null)

从数组中删除路径

(mixed) mda_del_value(&$arr,$path=null)

这将删除路径上的所有值

$arr['index'][0] = 'value';
$arr['index'][1] = 'value';
mda_del_value($arr,'index','value');
$count = count($arr['index']); //returns 0

(bool) mda_exists_value(&$arr,$path=null)

这将检查路径中是否存在值,与 mda_del_value() 相同

(bool) mda_exists(&$arr,$path)

检查路径是否存在

(array) mda_flatten(&$arr,$keyname)

注意:这不需要路径,它需要键名

  • 使用 mda_get 来找到可能的最低路径,并将其传递给此函数
  • 例如:$arr = mda_flatten(mda_get($arr,'path1.path2.path3'),'row_id');

(string) implodei($join,$arr=array())

与PHP的implode原型相同,但具有增强的功能,它可以接受$join作为数组。如果$join是一个字符串,它将直接传递给PHP的implode,这更快

$array = array(1,2,3,4,5);
$join = array('/','.',',');
$str = implodei($join,$array); //returns 1/2.3,4,5

注意:数组的最后一个成员将被重复

(mixed) mda_shift($arr)

注意:这不会增加数组的指针(与 array_shift() 不一样)仅用于移动匿名数组,它不会引用原始数组,否则它与PHP的 array_shift() 相同

(array) mda_merge($arr,$arr[,$arr...])

将递归合并数组,类似于 array_merge 但不与 array_merge_recursive 相同,后者是错误的