मैं मुख्य मूल्य जोड़े के साथ एक सरणी कैसे बना सकता हूं?


117

मैं किसी सरणी में मुख्य मूल्य जोड़े कैसे जोड़ सकता हूं?

यह काम नहीं करेगा:

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);
}

क्योंकि यह मुझे देता है:

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

और मुझे उम्मीद है:

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

2
क्या अधिक प्रतिनिधि वाला कोई व्यक्ति इस प्रश्न को संपादित कर सकता है और लाइन ब्रेक को ठीक कर सकता है?
ब्रायन रामसे

जवाबों:



155
$data =array();
$data['user_code']  = 'JOY' ;
$data['user_name']  = 'JOY' ;
$data['user_email'] = 'joy@cargomar.org';

12
यह सरल उत्तर इसे मेरे लिए अच्छी तरह से समझाता है।
ब्‍लॉसी

इस समाधान के साथ एकमात्र बात यह है कि इस तरह से आप केवल सरणी के अंत में कुंजी-मूल्य जोड़े जोड़ सकते हैं, भले ही आपके पास पूर्णांक कुंजी हो। PHP सरणियों का आदेश दिया जाता है, इसलिए यदि आप एक कुंजी-मूल्य जोड़ी के साथ एक सरणी को तैयार करना चाहते हैं, तो आपको यह करना होगा $data = ['user_email' => joy@cargomar.org'] + $data:।
तात्यामेली

16

मेरा PHP थोड़ा कठोर है, लेकिन मेरा मानना ​​है कि आप अनुक्रमित असाइनमेंट की तलाश कर रहे हैं। बस उपयोग करें:

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

PHP सरणियों में वास्तव में नक्शे होते हैं, जहां कुंजियाँ पूर्णांक या तार हो सकती हैं। PHP की जाँच करें : Arrays - अधिक जानकारी के लिए मैनुअल


2

आप एकल मान सरणी कुंजी-मान बना सकते हैं

$new_row = array($row["datasource_id"]=>$row["title"]);

लूप के अंदर, और फिर उपयोग करें array_merge प्रत्येक नए $new_rowऐरे को संयोजित करने के लिए लूप में फ़ंक्शन का ।


1

अनुक्रमित सरणी में कुंजियों को जोड़ने के लिए आप अपने फ़ंक्शन में इस फ़ंक्शन का उपयोग कर सकते हैं।

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

कोई ज़रूरत नहीं है array_push function.if आप कई आइटम जोड़ना चाहते हैं जो ठीक काम करता है। बस यह कोशिश करो और यह मेरे लिए काम किया

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

}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.