PHP Utils: 复制/批量移除 数组内元素

Categories: PHP; Tagged with: ; @ September 9th, 2010 22:20

1. 将$source内的元素复制到$target数组内
2. 将$target数组内 拥有与 $source相同key的元素移除.

	/** 
	 * 将指定Array内的元素复制到目标Array中, 如果具有相同key, 则会被覆盖.
	 **/
	public static function copyArrayItems($source, $target) {
		foreach($source as $sourceItemKey=>$sourceItemValue) {
			$target[$sourceItemKey] = $sourceItemValue;
		}
		return $target;
	}
	
	/**
	 * 移除$target数组中中带有 $source中元素相同key的元素.
	 * @param $source
	 * @param $target
	 * @return unknown_type
	 */
	public static function removeArrayItems($source, $target) {
		foreach($source as $sourceKey => $sourseValue) {
			unset($target[$sourseValue]);
		}
		return $target;
	}

 

有关数组的操作: http://liguoliang.com/2010/php-array-简单操作小结/

PHP Array 简单操作小结

Categories: PHP; Tagged with: ; @ August 28th, 2010 11:32

1. 创建Array: $arraySites = array();

2. addItem: $arraySites[$site->id] = $site;

3. 使用foreach遍历Array:

foreach ($arraySites as $site) { // 遍历每一个Site.
	// do something.
}

// Or:
foreach($array as $key=>$value)
{
echo "$key,$value ";
}

4. length: count($arraySite);

5.  打散/切割 Array : array_chunk($mails, $MAX_MAILS_PER_SMTP_SESSION, true);

该方法将会根据设定的大小对原数组进行切割, 生成多个小的数组(最后一个可能会少于单元大小), 第三个参数控制是否在打散后的数组内保留其原有key.

复制/移除 数组: http://liguoliang.com/2010/copy-and-remove-array-to-array-in-php/

Flex中XML的处理

Categories: 垃圾山; Tagged with: ; @ November 11th, 2008 23:26

今天老子太累了….一日一类扛不住了…先把以前的笔记发上来撑着吧…
ECMAScript for XML (E4X)是一扩展了ECMAScript(JavaScript)的程式语言,它增加本地XML支持,为ECMAScript程序员提供了一种感觉直观的方式来访问XML文档。

Flex中XML对象的创建

//通过表达式直接创建XML对象[省略]
//通过XML对象的构造函数创建XML对象[省略]
//通过Array中Object建立.
	 /**把所有person从数组Parry种提出来,并转换为XML格式,
		 */
		 public static function allPersonsToXml():XML {
		 	var i:int;
			var flexXML:XML = 
			for (i=0;i

访问XML:

E4X提供两种工具来访问一个XML层次结构中的数据:

    XML和XMLLIst内容访问方法(attribute(),attribute()…等

    具有点(.), 后裔(..), 和属性(@) 运算符的变量风格访问

在XML文档中,有一部分数据是以节点方式存在的.在使用XML对象过程中,除了使用节点之外,对于XML节点属性的访问也尤为重要.在AS3.0中,最基本属性访问方式就是使用”@”操作符.可以通过@操作符加属性名称的方式直接访问节点的属性.

Var flexXML : XML = 

      Flash CS3
      Flash 8
      Flex3


      Google Ajax1.0


//通过@访问属性
Trace(flexXML.FlashPlayer.@version);  //9
Trace(flexXML.FlashPlayer.Flash.@version); //9
Trace(flexXML.FlashPlayer.@*.toXMLString);
//输出:
//9
//Adobe
//使用attribute访问,
Trace(flexXML.FlashPlayer.attribute(“version”);
Trace(flexXML.FlashPlayer.attribute(“*”);

遍历XML节点

/**用for in遍历数组中的Student,并插入到Paryy中.
*/
for (var name:String in novel.child("Student")) {
PArray.push(
new Student(novel.child("Student")[name].Name,
int(novel.child("Student")[name].Age)
)
);
} // End: for each Student

[千斤顶之一日一类002]Top Level: Array学习

Categories: Flex; Tagged with: ; @ November 1st, 2008 23:28

坦白说每天搞一个类是很累且疲惫的, 今天是玩千斤顶的第二天, 周六, 我突然体味到那些包二奶的爷们们的难处, 多累啊….试想我每天看一个类, 今天是第二把尝试, 都有些扛不住了, 下午逛街回来给娘做了饭, 一起吃完看了会儿电视, 着实扛不住了, 就小憩了半个小时才爬起来看今天的One Day One Class. 假如给我400个女人, 让我One Day One Woman, 我岂不是要累死?

不扯了, 总结下Array类.

Top Level: Array

. 游标[index]从0开始;
. Array()可以以函数方式被调用
. 可以往Array里存储数字, 字符串, 对象, Array.
. Array是稀疏的, 如果某数组在index为0与5时都包含对象, 但是在0与5之间没有任何值, 则如果调用中间元素时,返回"undefined";
. 传地址, 而非传值. 即: 如果将某数组赋值给另外一个数组, 则该来那个歌数组都指向同一个数组, 修改其中一个, 另外一个也随之修改. 不同于数字与字符串等
. 不要用数组来建立哈希表
. 可以继承Array类, 并 重写,增加方法, 但必须制定该子类为Dynamic类型, 否则将无法使用Sort.

Public Properties

length : uint 返回数组的长度
继承来的我就不说了…..

Public Methods

归归类, 不然就太没有创意了,跟API一模一样….

1. 数组的创建:

var arrayStu_1:Array = new Array(1);   //创建一个长度为1的数组. 但如果不赋值, 都是undefined
var arrayStu_2:Array = new Array("arrayStu_2_Index0", "arrayStu_2_Index1");   //创建包含有括号里这俩元素的数组
var arrayStu_3:Array = ["arrayStu_3_Index0", "arrayStu3_Index1"];   //这个更直接一些了, 直接赋值.

2. 数组元素的访问, 增加, 修改, 删除:
访问:
array[i], 访问某元素, 如果要访问全部, 使用For循环
增加:
Push(): 将一个或多个元素添加到数组的结尾,并返回该数组的新长度。
unshift(): 将一个或多个元素添加到数组的开头,并返回该数组的新长度。
修改: 直接赋值: array[i] = new value;
删除:
Pop(): 删除数组中最后一个元素,并返回该元素的值。
Shift(): 删除数组中第一个元素,并返回该元素。 其余数组元素将从其原始位置 i 移至 i-1。同时该数长度减少一位;
另外:
splice():给数组添加元素以及从数组中删除元素 可以用于增加或删除元素,同时增大或减小数组长度;

3. 长度或index操作:
length:
返回array的长度;
indexOf(): 从左向右遍历数组, 遇到符合要求的元素时, 返回该元素index. 如果遍历结束仍未发现符合要求的元素,返回-1;
lastIndexOf(): 与inidexOf()相反, 从右向左寻找要求的元素;

4. 数组的操作
数组的连接: 
concat(), 数组的连接 如:
arrayStu_2 = arrayStu_2.concat(arrayStu_1);
trace(arrayStu_2.toString());  //显示: arrayStu_2_Index0,arrayStu_2_Index1,——注意这个逗号, 意为后头还有个空的. 因为arrayStu_1只是一个长度为1但没有元素的数组.
数组元素的检测:  evey(): 对数组中的每一项执行测试函数,直到获得对指定的函数返回 false 的项。 使用此方法可确定数组中的所有项是否满足某一条件,如具有的值小于某一特定数值。
筛选出符合要求之元素并新建一个数组: filter();
Join():将数组中的元素转换为字符串、在元素间插入指定的分隔符、连接这些元素然后返回结果字符串。
Map(): 返回一个新数组,其中包含此函数对原始数组中每一项的执行结果。
reverse(): 在当前位置倒转数组。
slice():  返回由原始数组中某一范围的元素构成的新数组,而不修改原始数组。 返回的数组包括 startIndex 元素以及从其开始到 endIndex 元素(但不包括该元素)的所有元素。 如果您没有传递任何参数,则创建原始数组的一个副本。如果两参数均为-1, 则起点或终点为数组的结尾, -1 指的是最后一个元素。

5. 其他操作
Some(), Sort(), SortOn()



// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.