الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مبتدئة في php

بدأه Sajeda في 14 أبريل 2010 · 1 رد · 449 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اذا كان لدي متغير يتكون من ارقام وحروف واريد تجزئة هذا المتغير ووضع الحروف في متغير اخر والارقام في متغير ثاني كيف يتم ذلك مثلا

number=vfcg3456

num1=vfcg

num2=3456

#2

يمكن استخدام regex لعمل ذلك بسهولة وبسطر واحد من الكود.

ولكني اردت هنا ان يكون الكود بسيط للغاية وهو كالتالي

<?php
$number = 'vfcg3456';

print_r(split_numeric_and_text($number));


function split_numeric_and_text($str)
{
	$arr = str_split($str);
	$result = array();
	$tmp = ''; 	// initilize temporary collector var.
	for($i = 0; $i < sizeof($arr); $i++)
	{
		if(is_numeric($arr[$i]))			// check if current char is numeric
		{
			if(isset($prv) AND $prv == 1) 		// previous value indicator 1 for numeric 0 for text
			{
				$tmp .= $arr[$i];
			} 
			else 
			{
				if(isset($j))		// $j is array index of result, if it wasn't initilized then we need to initlize it
				{
					$result[$j] = $tmp;		// store tmp value
					$j++;					// if initilized then we increase the index
				}
				else
				{
					$j = 0;				// initilize 
				}
				$tmp = $arr[$i];
			}
			$prv = 1;
		}
		else	// current char is not numeric, we assume it is text tho!
		{
			if(isset($prv) AND $prv == 0)
			{
				$tmp .=$arr[$i];
			}
			else
			{
				if(isset($j))
				{
					$result[$j] = $tmp;
					$j++;
				}
				else
				{
					$j = 0;
				}
				$tmp = $arr[$i];
			}
			$prv =0;
		}
	}
	if(!empty($tmp))		$result[$j] = $tmp;		// store remaining chunk
	return $result;
}
?>

مواضيع مشابهة