اضافه کردن یک مقدار به array

3dsmax

Member
سلام من یک array دارم که مقدارش به یک function فرستاده میشه و سپس همه مقدار هایی که در array قرار دارن در بین یک دستور قرار میگیرند و چک می شوند و مقدار بازگشتی return می شود ، حالا من نمی دونم چطور مقدار های array رو یکی یکی در بین دستور مورد نظر قرار بدم و عملیات چک کردن رو انجام بدم. یه نگاه به کد های زیر بندازید...

PHP:
$array = array('1', '2', '');

if (not($array)) {
	echo "لطفا تمام فیلد ها را تکمیل نمایید";
}


بعد function not باید مقدار ها رو یکی یکی در دستور strlen(------) == 0 به جای خط تیره ها بزاره ، یعنی اگه 3 مورد باشن ، باید if به صورت زیر در بیاد.

PHP:
if (strlen(---meghdar 1---) == 0 OR strlen(---meghdar 2---) == 0 OR strlen(---meghdar 3---) == 0) {
	return true;
}
else {
	return false;
}
 
سلام . من منظورتون رو درست متوجه نشدم ولی این کد فک کنم بدردتون بخوره :
PHP:
for(i=0;i<=3;i++)
{
	if (strlen( $array[$i] == 0) 
	{
	    return true;
	}
	else {
	    return false;
	}
}
 

yakoza

Well-Known Member
سلام من یه تکه کد نوشتم

کارتو راه میندازه

PHP:
<?php

/**
 * @author naser
 * @copyright 2008
 */
function not($v)
{
	if (strlen($v) == 0)
    	return true;
	else 
    	return false;
}  

$arr=array('1','2','');
$flag=false;
foreach($arr as $value)
{
	if(not($value))
	{
		$flag=true;
	}
}

($flag==true) ? print "لطفا تمام فیلد ها را تکمیل نمایید" : print "همه فیلدها پر هستند";


?>

تشکر یادت نره :d
 

3dsmax

Member
منون از آقای amirkhoshhal و آقای yakoza ، خیلی کمک کردید، مرسی:wink:
 

my friend

Member
البته این مثالی که جناب yakoza نوشتند، آخرین اندیس آرایه رو چک میکنه، اگه خالی بود، مقدار true رو بر میگردونه...
مثال جناب amirkhoshhal هم از نظر syntax مشکل داره و هم از نظر دستوری... return نباید صورت بگیره و به عبارت دیگه، فقط اولین اندیس آرایه رو برمیگردونه (بر عکس مثال جناب yakoza
majidonline_biggestgrin.gif
)

بهتره اینطوری تغییرش بدیم:
PHP:
<?php

// declare variables & arrays
$array = array('1', '2', '');
$count = 0;

// if $array have empty value, increase $count
foreach ($array as $value)
	$count += is_empty($value);

// print result
print $count==0 ? "همه فیلدها پر هستند" : "لطفا تمام فیلد ها را تکمیل نمایید";


/**
 * Finds whether a variable is empty.
 *
 * @param str[optional] $str
 * @return int 1 if length is zero, 0 if length is not zero.
 */
function is_empty($str = '')
{
    if (strlen($str)==0)
        return 1;
    return 0;
}

?>
 

yakoza

Well-Known Member
البته این مثالی که جناب yakoza نوشتند، آخرین اندیس آرایه رو چک میکنه، اگه خالی بود، مقدار true رو بر میگردونه...

مطئنی ؟! :cool:

PHP:
function not($v)
{
	if (strlen($v) == 0)
    	return true;
	else 
    	return false;
}  

$arr=array('1','','3','4','5','6','','8');
$flag=false;
foreach($arr as $value)
{
	if(not($value))
	{
		$flag=true;
	}
}

($flag==true) ? print "لطفا تمام فیلد ها را تکمیل نمایید" : print "همه فیلدها پر هستند";

کد منو یه بار تست کن ببین :D
آرایه رو هم بهش مقدار دادم
 

3dsmax

Member
همه کد ها درستن ، ممنون من یه کد کوتاه موقع فراخوانی می خوام ، مثلا موقع فراخوانی توابع به شکل زیر باشه

PHP:
$arr=array('1','','3','4','5','6','','8');
(not($arr) == true) ? print "لطفا تمام فيلد ها را تکميل نماييد" : print "همه فيلدها پر هستند";

بعد اون foreach و function not در یک یا 2 function قرار بگیرن ، یعنی فقط یه با تکرار بشن ، بازم ممنون:rose:
 

my friend

Member
yakoza@
شرمنده رفیق، نمیدونم چرا اونموقع فکر کردم یه else هم بهش دادی... که flag$ رو فالس میکنه.
 

جدیدترین ارسال ها

بالا