के भीतर किसी सरणी का उपयोग कैसे कर सकता हूं, इसलिए मैं एक खोज स्ट्रिंग (शब्दों की संख्या हो सकती है) लेने के लिए कोशिश कर रहा हूं और प्रत्येक मान को निम्नलिखित IN कथन में उपयोग करने के लिए सूची में बदल सकता हूं) मेरे होने गिनती फिल्टरमैं SQL क्वेरी
$search_array = explode(" ",$this->search_string);
$tag_count = count($search_array);
$db = Connect::connect();
$query = "select p.id
from photographs p
left join photograph_tags c
on p.id = c.photograph_id
and c.value IN ($search_array)
group by p.id
having count(c.value) >= $tag_count";
यह वर्तमान में कोई परिणाम, किसी भी विचार के साथ उपयोग करने के लिए इन सभी मूल्यों की गणना करने की जरूरत है?
समाधान:
$search_array = explode(" ",$this->search_string);
foreach ($search_array as $key => $value) {
$new_search_array[] = "'$value'";
}
$search_string = implode(',', $new_search_array);
यह मैं एक अल्पविराम से अलग सूची
आप के साथ '" ' "ही पूरा कर सकते हैं। implode ("','", $ search_array)। "'", हालांकि, यह शायद आपके समाधान के रूप में सुरुचिपूर्ण नहीं है :-) –
ओह अच्छा, मैंने इसके बारे में भी सोचा नहीं था! –
अच्छा समाधान, लेकिन ध्यान दें कि यह 5.3 से पहले PHP में अपेक्षित काम नहीं करेगा, क्योंकि array_reduce() 5.2 और इससे पहले के तीसरे पैरामीटर के रूप में केवल पूर्णांक स्वीकार करता है। नतीजतन स्ट्रिंग '0, "एक", "दो", ...' –