/ / PHP कैसे स्ट्रिंग सरणी मानों को उद्धृत करें - php, mysql, arrays, string

PHP स्ट्रिंग ऐरे वैल्यू को कैसे कोट करें - php, mysql, arrays, string

अगर मेरे पास निम्न सरणी है $array[0] = array( "1" => bar, "2" => foo, "3" => 13546 ); और मैं इसे () लौटाता हूं, जो मूल्य लौटाया जाएगा वह होगा: bar,foo,13546 जो एक mysql क्वेरी में इस्तेमाल नहीं किया जा सकता है ... मैं उन मूल्यों के लिए एकल उद्धरण कैसे रख सकता हूं जो तार हैं ...

मैंने कुछ तरीके की कोशिश की (जैसे) foreach($array as $key=>$value) is_numeric () $ मूल्य के साथ जांच करने के लिए, और चेक ठीक है, लेकिन मुझे नहीं पता कि मूल्य को "$ मूल्य" में कैसे बदलना है ...)

इस पर कोई मुश्किल?

संपादित करें

मुझे आप में से उन लोगों के लिए ऐसा करने का एक और तरीका मिल गया है जो रुचि रखते हैं:

$result[0] = array(
"1" => bar,
"2" => foo,
"3" => 1232.13
);

$copy_r = $result[0];

foreach($copy_r as $key=>$value)
{
if(!is_numeric($value))
{
$insert_array[] = "`$key` = "$value"";
}
else
{
$insert_array[] = "`$key` = $value";
}
}

$final_string = implode(",", $insert_array);
$insert_q = "INSERT INTO `table_name` SET $final_string
ON DUPLICATE KEY UPDATE ($final_string)";

उत्तर:

जवाब के लिए 5 № 1

बेहतर तैयार प्रश्नों का उपयोग करें। लेकिन सिर्फ मज़े के लिए:

implode(",", array_map(function($value) {
if(!is_numeric($value)) {
return """ . $value . """;
//adds double quotes, but if you prefer single quotes, use:
//return """ . $value . """;
} else {
return $value;
}
}, $array[0]);

जवाब के लिए 5 № 2

इस बात से सहमत हैं कि आपको तैयार किए गए कथनों पर गौर करना चाहिए, हालांकि आपके मूल प्रश्न का उत्तर देने के लिए आप ऐसा कर सकते हैं:

$array=array("a", "b", "c");

$string = """ . implode("","", $array) . """;

जवाब के लिए 0 № 3

Foreach + isnumeric () संभवतः सबसे अच्छा तरीका है। फिर मान बदलने के लिए:

$array[$key] = """ . $value . """;

जो बदल जाता है foo/"foo" में "foo"/""foo"" और इसी तरह।


जवाब के लिए 0 № 4

यदि आप mysql- ड्राइवर का उपयोग करते हैं:

function escape( $x ) {
return """ . mysql_real_escape_string($x) . """;
}

$data = array( "1" => bar, "2" => foo, "3" => 13546 );

echo implode( ",", array_map("escape", $data) );

उत्तर के लिए -1 № 5

सत्यापित समाधान ने मेरे लिए काम नहीं किया। कुछ ऐसा होना चाहिए जो मैं गलत तरीके से कर रहा हूं, लेकिन नीचे के समाधान ने मेरे लिए काम किया और मैंने अपने MYSQL में परिणाम का उपयोग किया IN क्‍वॉज क्‍योंकि सभी मानों को उस क्‍वेरी में उद्धृत रूप में होना चाहिए।

समाधान सरल है और यह सभी मूल्यों के माध्यम से PHP के मूल सरणी मान और सरणी फ़िल्टर को संशोधित करने के लिए संदर्भ द्वारा कॉल का उपयोग करता है।

function quote(&$a){
$a=""".$a.""";
}

$arr= array("car","bus","truck","bike");

array_filter( $arr,"quote");

echo implode(",", $arr);