2011-04-19 2 views
6

मेरे पास डेटा के साथ एक सरणी है, सभी अपनी अनूठी आईडी के साथ। मैं ORM विधि खोज ('सभी') का उपयोग कर रहा है और जिसके परिणामस्वरूप सरणी कुछ हद तक इस तरह दिखता है:केकपीएचपी की खोज ('सभी') विधि में 'आईडी' के साथ इंडेक्स सेट करना

Array 
(
    [0] => Array 
     (
      [Wijken] => Array 
       (
        [id] => 1 
        [name] => Naam 
        [lat] => 13.37 
        [lon] => 13.37 
        [zoom] => 14 
       ) 

     ) 

) 

मेरी रूटिंग से मैं एक अद्वितीय ID प्राप्त कर रहा हूँ .. मैं क्या चाहता हूँ, है फिर से उपयोग मेरी सरणी और डेटा प्राप्त करें, मान लें, आईडी 1.

तो मुझे जो चाहिए वह यह है कि मेरे सहयोगी सरणी के सूचकांक (खोज (')) द्वारा लौटाए गए "Wijken" की आईडी के साथ सेट किए जा रहे हैं खुद को छोड़ दें।

मैंने सबकुछ समझाया, बस अगर लोगों के पास एक अलग दृष्टिकोण है। फिर भी पैरा आईडी के साथ डेटाबेस क्वेरी करना स्वीकार्य नहीं है।

उत्तर

15

Set::combine

कोशिश ('सभी') खोजने बनाए रखने के लिए संरचना (icc97 टिप्पणी से):

$idsAsIndexes = Set::combine($wijkens, '{n}.Wijken.id', '{n}.Wijken'); 

आशा है कि:

$idsAsIndexes = Set::combine($wijkens, '{n}.Wijken.id', '{n}'); 

वैकल्पिक रूप से आप भी एक मॉडल निकाल सकते हैं आप जो खोज रहे हैं :)

+0

मुझे इस समारोह के बारे में पता नहीं था। सूचित करने के लिए धन्यवाद। – raultm

+0

धन्यवाद! लेकिन शायद, यह वास्तव में सिर्फ एक foreach है, है ना? –

+6

यदि आप एक ही सरणी संरचना को बनाए रखना चाहते हैं ('सभी') यानी 'विज्केन' कुंजी सहित आपको '$ wijkensWithIdsAsIndexes = Set :: गठबंधन ($ wijkens,' {n }.Wijken.id ',' {n} '); ' – icc97

1

मुझे आपकी आईडी को सरणी में एक कुंजी के रूप में रखने का कोई तरीका नहीं पता है, और ऐसा भी नहीं लगता कि केक के साथ कुछ "मजाकिया" किए बिना यह संभव नहीं है।

लेकिन अगर आप एक सब पाते हैं, मैं तुम्हें डेटा की प्रक्रिया करने जा रहे हैं मान लेते हैं और कुछ बिंदु पर एक पाश, उस समय आपके पास की तरह कुछ हो सकता था कर दिया था:

foreach ($wijkens as $wijken) { 
    [...]do the general things here[...] 
    if ($wijken['Wijken']['id'] == $url_id) { 
     [...]do the thing you want to specifically do to id = 1 here[...] 
    } 
} 

पर दूसरी तरफ, मैं समझता हूं कि आप कोई अतिरिक्त प्रश्न नहीं चाहते हैं, हालांकि यह मेरे लिए एक सापेक्ष मामूली लेनदेन लागत की तरह लगता है, और अभी भी मैं क्या पसंद करूंगा।

+0

हां, यह दृष्टिकोण मेरा बैकअप है। और मैं वास्तव में कुछ मजाकिया नहीं करना चाहता, वास्तव में। मैं बस उम्मीद कर रहा था कि केकपीएचपी का समाधान होगा। –

संबंधित मुद्दे