PDA

View Full Version : سوال: اضافه کردن اندیس جدید به آرایه و بعد مرتب کردن آرایه بر اساس اندیس جدید



numberone1
چهارشنبه 22 آذر 1391, 10:54 صبح
سلام
فرض کنید از دیتابیس کوئری گرفتم مثلا اسم هر کسی "علی" داشت توش بیار به عنوان نتایج
حالا میخوام به آرایه یک اندیس جدید بدم به عنوان عدد
مثلا فرض کنید
علی - 3
علیرضا - 2
علیقلی - 1
محمد علی - 4
.....
حالا میخوام این اندیس ها رو مرتب کنم داخل آرایه بعد بر اساس این اندیس ها نمایش بدم
علیقلی 1
علیرضا 2
علی 3
محمد علی 4
به ترتیب اعداد داده شده به آرایه ها اسم ها مرتب بشن و بعد نمایشش داده بشن
کل این پروسه که شرح دادم بلد نیستم
هم اضافه کردن یک اندیس جدید به آرایه
هم مرتب کردن اندیس ها
لطفا با کد مثال بزنید.

reza10wert
چهارشنبه 22 آذر 1391, 13:49 عصر
خوب چرا می خواهی بریزیش توی آرایه ؟
هنگام گرفتن اطلاعات از بانک میتونی مرتبش کنی ولی

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


$array=array();
// اضافه کردن مقدار به ارایه
$array[]='علی';
$array[]='محمدعلی';
...

sort($array)// مرتب کردن آرایه


امیدوارم مفید باشه

numberone1
چهارشنبه 22 آذر 1391, 14:50 عصر
خوب چرا می خواهی بریزیش توی آرایه ؟
هنگام گرفتن اطلاعات از بانک میتونی مرتبش کنی ولی

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


$array=array();
// اضافه کردن مقدار به ارایه
$array[]='علی';
$array[]='محمدعلی';
...

sort($array)// مرتب کردن آرایه


امیدوارم مفید باشه
منظورم این بود که بعد از کوئری گرفتن از دیتا بیس روی تک تک اطلاعات یک پردازشی انجام میشه بعد یک عددی به هرکدوم اختصاص داده میشه
میخوام بر حسب اون عدد آرایه ها مرتب بشن
مثلا توی کوئری اول علیرضا هست ولی بعد از پردازشی که من انجام میدم محمد علی میاد اول لیست
میخوام توی صفحه اول محمد علی چاپ بشه بعد بقیه به ترتیب اولویتشون
امید وارم منظورمو رسونده باشم

numberone1
جمعه 24 آذر 1391, 00:44 صبح
منظورم این بود که بعد از کوئری گرفتن از دیتا بیس روی تک تک اطلاعات یک پردازشی انجام میشه بعد یک عددی به هرکدوم اختصاص داده میشه
میخوام بر حسب اون عدد آرایه ها مرتب بشن
کسی نیست کمک کنه؟
کار با آرایه ها نباید اینقدر ها هم سخت باشه

$ M 3 H R D A D $
جمعه 24 آذر 1391, 01:02 صبح
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);

numberone1
جمعه 24 آذر 1391, 16:31 عصر
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);
منظورم این نبود
name=>ali,1
یا
name=> ali id=>1
name=> mohamad id=>2
....
بعد بر اساس عدد آیدی مرتب بشن و نمایش داده بشن

numberone1
یک شنبه 26 آذر 1391, 08:42 صبح
کسی نیست کمک کنه؟

reza10wert
یک شنبه 26 آذر 1391, 08:46 صبح
خوب دوست عزیز این اندیس های عددی ه به آرایه ات میدی بر چه اساسی هست ؟

دستی میدی یا ... ؟ میشه در موردش توضیح بدید ؟

numberone1
یک شنبه 26 آذر 1391, 10:47 صبح
خوب دوست عزیز این اندیس های عددی ه به آرایه ات میدی بر چه اساسی هست ؟

دستی میدی یا ... ؟ میشه در موردش توضیح بدید ؟
شما فرض کنید
من توی دیتابیس سرچ میکنم یه سری اسم پیدا میکنم فرضا 10 تا اسم
حالا میام این 10 تا رو با یه تابعی رشته هاشو مقایسه میکنم که دیگه ربطی به دیتابیس نداره
میخوام هر رشته ای که درصد شباهت بالاتری داشت و اول نمایش بدم توی صفحه

مثلا
کوئری که از دیتابیس گرفته شده لیست آرایه اینطوری پر شده
علی
محمد
محمد رضا
علیرضا
....

من میخوام روی این لیست یه مقایسه انجام بدم برای هر کدوم از این مقادیر یه درصد شباهت در بیارم
اینجوری میشه
علی 10
محمد 90
محمد رضا 85
علیرضا 20
....

بعد اینا رو به ترتیب درصد از بالا به پائین نمایش بدم توی صفحه به کاربران

خروجی صفحه>>


محمد
محمد رضا
علیرضا
علی

امید وارم توضیح واضح باشه

reza10wert
یک شنبه 26 آذر 1391, 10:52 صبح
متوجه شدم
ولی شما کوئری که اطلاعات را از بانک میخونید میاد به ترتیب از اولین رکورد چک میکنه ببینه مطابق کوئری شما میشه انتخابش کرد یا نه
اگر بود که میریزش داخل یه آرایه

ولی درصد رو نمیشه بنظرم کاری کرد چون میاد مثلا توی بانک هر اسمی که کلمه "محمد" داره رو واکشی میکنه و درصد نمیگیره

البته این اطلاعات منه شاید راهی وجود داشته باشه !

numberone1
یک شنبه 26 آذر 1391, 11:03 صبح
متوجه شدم
ولی شما کوئری که اطلاعات را از بانک میخونید میاد به ترتیب از اولین رکورد چک میکنه ببینه مطابق کوئری شما میشه انتخابش کرد یا نه
اگر بود که میریزش داخل یه آرایه

ولی درصد رو نمیشه بنظرم کاری کرد چون میاد مثلا توی بانک هر اسمی که کلمه "محمد" داره رو واکشی میکنه و درصد نمیگیره

البته این اطلاعات منه شاید راهی وجود داشته باشه !

قسمت اولش درسته کوئری گرفته میشه و داخل آرایه ریخته میشه
حالا درصد نه فرض کنید من بتونم وقتی رشته رو مقایسه میکنم داخل آرایه یک بعد دوم هم ایجاد کنم
بعد اول آرایه اسمی باشه که از کوئری گرفتیم و بعد دوم هم یک عدد باشه
فکر کنم یه راهی باشه من بتونم یه آرایه 2 بعدی ایجاد کنم بعد بتونم توی اون مرتب سازی انجام بدم مشکلم حل بشه

reza10wert
یک شنبه 26 آذر 1391, 11:15 صبح
میتونی یه کاری کنی
البته دستور دقیقش رو نمیدونم ولی سخت هم نیست

باید برای اسامی که از بانک خونده میشه یک بعد برای آرایه ات تعریف کنی که طول رشته هست و بر اساس اون مرتب کنی و اونایی که طول کمتری داره رو اول نشون بدی
مثلا

$names[0]['length']=strlen($names[0]);

و بریزش داخل یه حلقه

numberone1
یک شنبه 26 آذر 1391, 11:31 صبح
میتونی یه کاری کنی
البته دستور دقیقش رو نمیدونم ولی سخت هم نیست

باید برای اسامی که از بانک خونده میشه یک بعد برای آرایه ات تعریف کنی که طول رشته هست و بر اساس اون مرتب کنی و اونایی که طول کمتری داره رو اول نشون بدی
مثلا

$names[0]['length']=strlen($names[0]);

و بریزش داخل یه حلقه
نه بازم منظور من و متوجه نشدی :(
بزار با کد مثال بزنم


<?php
$search = 'علیرضا';
while($row = mysql_fetch_array($query)){
similar_text($search, $row['name'], $percent);
echo $percent;
// این یه عددی میشه که درصد شباهت 2 تا رشته رو نشون میده
$array = Array('name' => $row['name'] 'id' =>$percent )
}
?>

اون آرایه رو بشه بر اساس id مرتب کرد و نمایش داد؟ چطوری؟