আমার স্ট্রিং ইনপুটটি কমাতে একটি অ্যারেতে বিভক্ত করতে হবে।
আমি কীভাবে এটি সম্পাদন করতে পারি?
ইনপুট:
9,admin@example.com,8
আমার স্ট্রিং ইনপুটটি কমাতে একটি অ্যারেতে বিভক্ত করতে হবে।
আমি কীভাবে এটি সম্পাদন করতে পারি?
9,admin@example.com,8
উত্তর:
বিস্ফোরণ চেষ্টা করুন :
$myString = "9,admin@example.com,8";
$myArray = explode(',', $myString);
print_r($myArray);
আউটপুট:
Array
(
[0] => 9
[1] => admin@example.com
[2] => 8
)
var_dump
যা আরও বিস্তারিত তথ্য দেয়। আরও বেশি দরকারী var_export($myArray, true)
কারণ এটি var_dump
একটি স্ট্রিং হিসাবে আউটপুট ফেরত দেয় যাতে আপনি এটি উত্পন্ন সাইটটি না ভেঙে কিছু লগে সংরক্ষণ করতে পারেন ...
$myString = "9,admin@example.com,8";
$myArray = explode(',', $myString);
foreach($myArray as $my_Array){
echo $my_Array.'<br>';
}
আউটপুট
9
admin@example.com
8
$string = '9,admin@google.com,8';
$array = explode(',', $string);
আরও জটিল পরিস্থিতিতে আপনার ব্যবহারের প্রয়োজন হতে পারে preg_split
।
যদি সেই স্ট্রিংটি কোনও সিএসভি ফাইল থেকে আসে তবে আমি ব্যবহার করব fgetcsv()
(বা str_getcsv()
আপনার পিএইচপি ভি 5.3 রয়েছে)। এটি আপনাকে উদ্ধৃত মানগুলিকে সঠিকভাবে পার্স করতে দেয়। যদি এটি কোনও সিএসভি explode()
না হয় তবে সেরা পছন্দ হওয়া উচিত।
কোড:
$string = "9,admin@example.com,8";
$array = explode(",", $string);
print_r($array);
$no = 1;
foreach ($array as $line) {
echo $no . ". " . $line . PHP_EOL;
$no++;
};
অনলাইন:
body, html, iframe {
width: 100% ;
height: 100% ;
overflow: hidden ;
}
<iframe src="https://ideone.com/pGEAlb" ></iframe>
সহজ উপায়ে আপনি যেতে পারেন explode($delimiter, $string)
;
তবে ম্যানুয়াল প্রোগ্রামিং সহ একটি বিস্তৃত উপায়ে:
$string = "ab,cdefg,xyx,ht623";
$resultArr = [];
$strLength = strlen($string);
$delimiter = ',';
$j = 0;
$tmp = '';
for ($i = 0; $i < $strLength; $i++) {
if($delimiter === $string[$i]) {
$j++;
$tmp = '';
continue;
}
$tmp .= $string[$i];
$resultArr[$j] = $tmp;
}
আউটপু: print_r($resultArr);
Array
(
[0] => ab
[1] => cdefg
[2] => xyx
[3] => ht623
)
"বিস্ফোরণ ()" ফাংশনটি ব্যবহার করা সবচেয়ে ভাল পছন্দ।
$content = "dad,fger,fgferf,fewf";
$delimiters =",";
$explodes = explode($delimiters, $content);
foreach($exploade as $explode) {
echo "This is a exploded String: ". $explode;
}
আপনি কি একটি দ্রুতগামী চান কাছে তোমার মত বিভেদক সরঞ্জামটি ব্যবহার করতে পারেন Delimiters.co এই মত অনেক ওয়েবসাইট আছে। তবে আমি একটি সাধারণ পিএইচপি কোড পছন্দ করি।
explode
বাস্তব জীবনের ব্যবহারে কিছু খুব বড় সমস্যা রয়েছে:
count(explode(',', null)); // 1 !!
explode(',', null); // [""] not an empty array, but an array with one empty string!
explode(',', ""); // [""]
explode(',', "1,"); // ["1",""] ending commas are also unsupported, kinda like IE8
এজন্য আমি প্রিগ_স্প্লিট পছন্দ করি
preg_split('@,@', $string, NULL, PREG_SPLIT_NO_EMPTY)
পুরো বয়লারপ্লেট:
/** @brief wrapper for explode
* @param string|int|array $val string will explode. '' return []. int return string in array (1 returns ['1']). array return itself. for other types - see $as_is
* @param bool $as_is false (default): bool/null return []. true: bool/null return itself.
* @param string $delimiter default ','
* @return array|mixed
*/
public static function explode($val, $as_is = false, $delimiter = ',')
{
// using preg_split (instead of explode) because it is the best way to handle ending comma and avoid empty string converted to ['']
return (is_string($val) || is_int($val)) ?
preg_split('@' . preg_quote($delimiter, '@') . '@', $val, NULL, PREG_SPLIT_NO_EMPTY)
:
($as_is ? $val : (is_array($val) ? $val : []));
}