2009-07-16 16 views
94

Anahtar değer çiftlerini bir diziye nasıl ekleyebilirim?Bir diziye anahtar değer çiftlerini nasıl ekleyebilirim?

Array ([0] => 1=>Categorie 1 [1] => 5=>Categorie 2 [2] => 2=>Caterorie 2) 

Ve beklediğim: bana verir Çünkü

public function getCategorieenAsArray(){ 

    $catList = array(); 

    $query = "SELECT DISTINCT datasource_id, title FROM table"; 
    if ($rs=C_DB::fetchRecordset($query)) { 
     while ($row=C_DB::fetchRow($rs)) { 
      if(!empty($row["title"])){ 
      array_push($catList, $row["datasource_id"] ."=>". $row["title"]); 
      } 
     } 
    } 

    return($catList); 
} 

:

Bu işe yaramaz

Array ([1] =>Categorie 1 [5] => Categorie 2 ) 
+2

Daha fazla re'ye sahip birisi bu soruyu düzenleyebilir ve hat kesintisini düzeltebilir mi? –

cevap

123

kullanımı square bracket syntax:

if (!empty($row["title"])) { 
    $catList[$row["datasource_id"]] = $row["title"]; 
} 

$row["datasource_id"]$row["title"] değeri depolandığı için anahtardır

15

Benim PHP biraz paslı, ama inan Dizinlenmiş ödevi arıyorsunuz. Sadece şunu kullanın:

$catList[$row["datasource_id"]] = $row["title"]; 

PHP dizelerinde, anahtarların tamsayı veya dizge olabildiği haritalar aslında vardır. Daha fazla bilgi için PHP: Arrays - Manual'a bakın.

119
$data =array(); 
$data['user_code'] = 'JOY' ; 
$data['user_name'] = 'JOY' ; 
$data['user_email'] = '[email protected]'; 
+9

Bu basit cevap benim için iyi açıklıyor. – Blowsie

2

için

olarak tek bir değer dizisi anahtar değeri oluşturabilir. Döngü içinde
$new_row = array($row["datasource_id"]=>$row["title"]); 

ve sonrakullanın Her yeni $new_row dizisini birleştirmek için döngüdeişlevi.

1

Dizine eklenmiş diziye anahtar eklemek için bu işlevi uygulamanızda kullanabilirsiniz.

public static function convertIndexedArrayToAssociative($indexedArr, $keys) 
{ 
    $resArr = array(); 
    foreach ($indexedArr as $item) 
    { 
     $tmpArr = array(); 
     foreach ($item as $key=>$value) 
     { 
      $tmpArr[$keys[$key]] = $value; 
     } 
     $resArr[] = $tmpArr; 
    } 
    return $resArr; 
} 
0

Gerek Birden öğeyi eklemek istediğiniz function.if iyi çalışıyor array_push. sadece bunu deneyin ve benim için çalıştım

class line_details { 
    var $commission_one=array(); 
    foreach($_SESSION['commission'] as $key=>$data){ 
      $row= explode('-', $key); 
      $this->commission_one[$row['0']]= $row['1'];    
    } 

} 
İlgili konular