Coo*_*per 17 php arraylist data-structures
php除了之外是否有任何数据结构array.是否可以创建一个数据结构,如ArrayList?如果是这样,请提供一些参考或某种实施方式.
Fel*_*ing 47
数组的所有可用函数都列在函数参考中.
一些说明:
在下面我尝试列出最常用ArrayList方法的PHP替代方案:
add(element)基本上只是附加通过$array[] = $element.新值获取下一个自由数字索引(这是首选方式).你也可以使用array_push($array, $element).addAll(ArrayList):array_merge($array1, $array2)在某种程度上.合并关联数组时要小心.将覆盖相同键的值.clone():由于数组不是对象,只需将数组分配给另一个变量即可"克隆"数组:
$a = array(1,2,3);
$b = $a;
Run Code Online (Sandbox Code Playgroud)contains(element): in_array($element, $array)
get(index):像大多数语言一样: $val = $array[index];indexOf(element):array_keys($array, $element)使用您搜索的值作为第二个参数isEmpty(): empty($array)remove(index): 它的 unset($array[index])remove(value)有价值:你必须先获得密钥(请参阅indexOf参考资料),迭代它们的密钥并使用unset.size(): count($array)我尝试实现,这里有一些简单的代码:
class ArrayList {
private $list = array();
public function Add($obj)
{
array_push($this->list, $obj);
}
public function Remove($key)
{
if(array_key_exists($key, $this->list))
{
unset($this->list[$key]);
}
}
public function Size()
{
return count($this->list);
}
public function IsEmpty()
{
return empty($this->list);
}
public function GetObj($key)
{
if(array_key_exists($key, $this->list))
{
return $this->list[$key];
}
else
{
return NULL;
}
}
public function GetKey($obj)
{
$arrKeys = array_keys($this->list, $obj);
if(empty($arrKeys))
{
return -1;
}
else
{
return $arrKeys[0];
}
}
}
Run Code Online (Sandbox Code Playgroud)
array(
'key' => 'value',
'key2' => 'value2'
)
Run Code Online (Sandbox Code Playgroud)
或者
class DataStructure {
var $val1;
var $val2;
}
$item = new DataStructure();
$item -> val1 = 'value1';
Run Code Online (Sandbox Code Playgroud)
我不知道这个“arrayList”是什么(听起来是Java),但如果它是一个数组列表,那么PHP等效项将是:
array(
array(
'item1',
'item2'
),
array(
'item1',
'item2'
)
)
Run Code Online (Sandbox Code Playgroud)
[编辑]
如果这arrayList只是一个数组,您可以使用
array(
'item1',
'item2'
)
Run Code Online (Sandbox Code Playgroud)