當前位置:首頁 » 編程語言 » php關聯數組

php關聯數組

發布時間: 2022-01-27 08:59:06

『壹』 請問php中什麼是關聯數組

$array=array(1,2,3,'k'=>'6');

echo $array['k'];//輸出6,這就是關聯數組,注意K與6的關系

『貳』 如何添加,刪除PHP關聯數組

示例如下:

<?php
//定義一個數組
$arr=array();

//添加元素
$arr['name']='';
$arr['url']='com';

//刪除某個元素
unset($arr['url']);

//刪除數組
unset($arr);

『叄』 php判斷數組是關聯數組還是數值數組

具體思路:獲取數組的所有鍵:「array_keys()」
遍歷所有鍵判斷是否按照順序從0開始每個增一。
具體方法如下:
function _checkAssocArray($arr)
{
$index = 0;
foreach (array_keys($arr) as $key) {
if ($index++ != $key) return false;
}
return true;
}
邏輯很簡單,關聯數組的鍵不會全部都按照:0,1,2,3…的順序遞增,如果它確實這樣,那麼和數值數組沒有任何區別,相同處理即可。
網上有另外一種思路:將數組所有的鍵與一個(0,數組長度)的新數組求差,

『肆』 PHP怎樣給一個關聯數組的頭部增加一項

一維hash數組用array_merge可以的,多維混合下標且存在重復下標時,要慎用array_merge(還是逐一遍歷數組元素更妥當,lotusphp的db配置數組就遇到過),會出現意...

『伍』 php 如何將查詢的結果集放到關聯數組

$rs=mysql_query($sql);
while($row=mysql_fetch_array($rs)){
$rows[]=$row;

}
print_r($rows);

『陸』 php中怎樣向關聯數組的指定位置插入另一個數組的元素

這個功能需求來自於網站運營策略,舉倒子:
在一個排行列表中,默認有以下元素,順序有一定的依據,假設是按下載次數排列。

$rows = array(
array('name'=>'QQ2010'),
array('name'=>'QQ2009'),
array('name'=>'迅雷5'),
array('name'=>'飛信2010'),
array('name'=>'Kugoo2010'),
array('name'=>'TTplayer'),
array('name'=>'Firefox4.0'),
array('name'=>'美圖秀秀'),
array('name'=>'360safe'),
array('name'=>'Chrome6')
);

如果有一個客戶[可牛殺毒]想買花10元/元下我們第二個位置,可以大家想,直接把QQ2009替換掉不就完事了嗎。不,那樣的話用戶體驗並不好,明明QQ2009是一個下載次數比較多的軟體,為什麼在列表中卻沒有了呢。

其實我們真正的需求是把QQ2009以下的單元都往後推,騰出第二個位置來給[可牛殺毒]。如果頁面中只能顯示10個單元,那倒霉的就是[Chrome6]了,誰叫他們付費買我們的位置呢,呵呵。

再說到程序原理上來吧,PHP要實現這個需求,挺簡單,用數組函數array_splice就可以了,具體用法參照PHP手冊。

給一個完整的例子吧:

<?php
$rows = array(
array('name'=>'QQ2010',),
array('name'=>'QQ2009',),
array('name'=>'迅雷5',),
array('name'=>'飛信2010',),
array('name'=>'Kugoo2010',),
array('name'=>'TTplayer',),
array('name'=>'Firefox4.0',),
array('name'=>'美圖秀秀',),
array('name'=>'360safe',),
array('name'=>'Chrome6',),
);

$pop = array(
'2'=>array('name'=>'可牛殺毒'),
'5'=>array('name'=>'金山詞霸2010'),
);

foreach($pop as $key=>$p){
array_splice($rows, $key-1, 0, array($p));
}

var_mp($rows);
?>

最近的結果是:

array(12) {
[0]=>
array(1) {
["name"]=>
string(6) "QQ2010"
}
[1]=>
array(1) {
["name"]=>
string(8) "可牛殺毒"
}
[2]=>
array(1) {
["name"]=>
string(6) "QQ2009"
}
[3]=>
array(1) {
["name"]=>
string(5) "迅雷5"
}
[4]=>
array(1) {
["name"]=>
string(12) "金山詞霸2010"
}
[5]=>
array(1) {
["name"]=>
string(8) "飛信2010"
}
[6]=>
array(1) {
["name"]=>
string(9) "Kugoo2010"
}
[7]=>
array(1) {
["name"]=>
string(8) "TTplayer"
}
[8]=>
array(1) {
["name"]=>
string(10) "Firefox4.0"
}
[9]=>
array(1) {
["name"]=>
string(8) "美圖秀秀"
}
[10]=>
array(1) {
["name"]=>
string(7) "360safe"
}
[11]=>
array(1) {
["name"]=>
string(7) "Chrome6"
}
}

『柒』 php怎麼把關聯數組轉成索引數組

PHP和PERL、VB不同,其只有「數組」,沒有單獨的「關聯數組」類型,實際上PHP的所有數組都是關聯數組,當沒有指定鍵值的時候,鍵值為0、1、2……
php中定義數組的方法:
PHP定義數組的格式
數組名=array();
如:$aa=array();//這樣就定義了一個數組,
之後給元素賦值:
$aa[0]="9016";
$aa[1]="9017";
$aa[2]="9018";
PHP輸出數組的方法:
foreach($aa as $val)
{echo$val;}
也可以在定義數組時直接賦值
$aa=array(0=>"9016",1=>"9017";2=>"9018");
PHP的數組還可以用字元做下標,不一定要數字.
$aa["name"]="Joan";
$aa["num"]="9018";
$aa["email"]="[email protected]";
也可以這樣
$aa=array("name"=>"joan","num"=>"9018","email"=>"[email protected]");
將一個一維數組的元素也定義為數組,就是一個二維數組,
$aa=array(0=>"a1",1=>"a2");
$bb=array(0=>"b1",1=>"b2");
$cc=array(0=>$aa;1=>$bb);此時,$cc[0]也是一個數組,$cc[1]也是一個數組,$cc就是一個二維數組。
同理,三維,四維數組也可以繼續定義下去。
數組的元素不僅於數字和字元串,可以是類的對象。

『捌』 php 怎麼把索引數組賦值給關聯數組

在PHP中可以用關聯數組的形式表示如下:
$grade=array(name=>li kui,age=>163);
只要指出一點的就是=>,這個運算符非常的形象,一看就能夠明白:鍵為name的值是li kui;鍵為age的值是163。當然你也可以用以下的形式來創建關聯數組:
$grade["name"]=li kui;
$grade["age"]=16;
PHP中的多維數組
在多維數組中,主數組中的每個元素也是一個數組。在子數組中的每個元素也可以是數組,以此類推。同樣我們以學校里的班級為例來說明如何定義多維數組。
所謂多維數組,無非就是在「一維數組」中再加入一個數組,這就是嵌套吧。在學校里我們知道,一個年級可能有多個班級,如一班、二班、三班等,用多維數組表示如下:
$school=array(1=>array(name=>li kui,age=>163),
2=>array(name=>wu song,age=>183)
&&
);
如果你要訪問wu song,按如下的形式訪問即可:
print $school[2][name]; //輸出wu song

『玖』 php 多個一維關聯數組去重

因為不太了解你其他業務,這里通過對多個數組觀察發現,他們的鍵名都是一致的。所以有2個簡單的辦法

(1)先翻轉一維數組,然後進行合並,再翻轉回來

這里就不寫詳細代碼,寫下簡單過程

  1. $array_a =array_flip($array_a);

    這樣交換後的數組內容如下

    Array
    (
    [DHL] =>carrier
    )

    Array
    (
    [HKPT] =>carrier
    )

    ....

  2. 合並數組,使用array_merge,數組中有相同的字元串鍵名,則該鍵名後面的值將覆蓋前一個值

    $mergeArray = array_merge($array_a,$array_b,$array_c...);

    這樣得到一個數組,裡面的元素都是鍵名不重復的,內容如下

    Array

    (

    [DHL] =>carrier

    [HKPT] =>carrier

    ....

    )

  3. 還原數組,這里如果要完全打散成一個一個的一維數組,就直接array_shift,同時翻轉回來

    $array_a =array_shift($mergeArray);$array_a =array_flip($array_a);

    $array_b =array_shift($mergeArray);$array_b=array_flip($array_b);

    ...

    這里一個一個執行可以用for循環替代,數組中有多少個元素就執行多少次,




(2)最簡單的辦法,只從你提供的例子來說,鍵名都一樣,直接先去掉鍵名,然後組合成一個數字索引的數組,直接array-unique,再把鍵名放回去


如果有不清楚可以發消息

『拾』 PHP 關聯數組應用問題

不會報錯,如果你的程序報錯了那就是因為你的變數少了$,$Books,因為php的++操作會自動強制轉換成int,沒有初始化的會從0開始。 這種問題直接運行測試就能知道結果,少點上來問,多動手,別瞎猜。

熱點內容
namespacelinux 發布:2024-11-16 07:28:13 瀏覽:352
html去緩存 發布:2024-11-16 07:05:22 瀏覽:723
如何限制蘋果ip段訪問伺服器 發布:2024-11-16 07:02:57 瀏覽:661
knn演算法原理 發布:2024-11-16 06:56:18 瀏覽:854
c語言第一章 發布:2024-11-16 06:49:07 瀏覽:51
伺服器ip黑名單和網站ip黑名單區別 發布:2024-11-16 06:45:56 瀏覽:888
上傳圖片命名規則 發布:2024-11-16 06:28:37 瀏覽:557
qq閱讀上傳 發布:2024-11-16 06:27:04 瀏覽:111
鴻蒙系統與安卓區別在哪裡 發布:2024-11-16 06:24:59 瀏覽:124
安卓手機如何更改信息提示音 發布:2024-11-16 06:12:52 瀏覽:143