PDA

View Full Version : سوال: چگونگي تركيب دو آرايه با يك ديگر و ساخت يك آرايه دو بعدي و دستيابي به ركوردهاي آرايه به صورت مستقل



Ali_Sedaghat
چهارشنبه 14 مهر 1389, 19:26 عصر
با سلام خدمت كاربران محترم
مشكلي برام به وجود اومده كه نياز به كمك شما دوستان دارم
در آرايه ي اول به نام A مقادير زير را وارد نموده ام: (اين آرايه يك بعدي است)
1
2
3

حالا در آرايه ي دوم به نام B مقادير زير را اضافه كرده ام: (اين آرايه يك بعدي است)
Ali
Abbas
Mohammad

هر دو آرايه داراي تعداد ركوردهاي مساوي هستند يعني 3 ركورد
حالا مي خوام اين دو آرايه را با هم تركيب كنم و يك آرايه ي جديد دو بعدي بسازم. سپس بتونم به تك تك ركوردها به صورت مستقل دسترسي داشته باشم تا بتوانم عمليات هاي مختلف را بر روي هر كدام از ركوردها به صورت مستقل انجام بدم
من از دستور زير استفاده كرده ام. عمليات تركيب انجام شده است ولي نمي تونم به ركوردها به صورت مستقل دستيابي داشته باشم


$c = array_combine($a, $b);

حالا چه طور مي تونم به تك تك ركوردها دسترسي داشته باشم. مثلاً محتويات ركورد اول يا دوم را با دستور echo نمايش بدم
ممنون مي شم مرا راهنمايي كنيد

funpatogh
چهارشنبه 14 مهر 1389, 19:47 عصر
عزیز این تابع که شما استفاده کردی آرایه 2 بعدی نمی سازه
وفقط یک آرایه جدید میسازه به صورتی که مقادیر آرایه اول میشه کلید های و مقادیر آرایه دوم میشه مقادیر آرایه جدید
به این شکل هست خروجیتون

Array ( [1] => ali [2] => abbas [3] => mohammad )


چیزی که میخوای بسازه رو نشون بده تا واضح تر بدونم منظورتون چیست؟

Ali_Sedaghat
پنج شنبه 15 مهر 1389, 06:04 صبح
عزیز این تابع که شما استفاده کردی آرایه 2 بعدی نمی سازه
وفقط یک آرایه جدید میسازه به صورتی که مقادیر آرایه اول میشه کلید های و مقادیر آرایه دوم میشه مقادیر آرایه جدید
به این شکل هست خروجیتون

Array ( [1] => ali [2] => abbas [3] => mohammad )


چیزی که میخوای بسازه رو نشون بده تا واضح تر بدونم منظورتون چیست؟

سلام دوست عزيز
ازتون به خاطر پاسخي كه داديد ممنونم
منظورم از ساخت آرايه ي دو بعدي اينه كه سه آرايه با هم تركيب بش. محتويات آرايه ي اول بشه مقادير ستون اول. محتويات آرايه ي دوم بشه مقادير ستون دوم و نهايتاً محتويات آرايه ي سوم بشه مقادير ستون سوم.

براي بهتر مشخص شدن موضوع دوباره يه مثال ديگه مطرح مي كنم
فرض كنيد كه من در آرايه ي اول اين مقادير را ذخيره كرده ام
Code
TIR
OIL
SPK

در آرايه ي دوم هم مقادير زير را ذخيره كرده ام
Description
Tires
Oil
Spark Plugs

و نهايتاً در آرايه ي سوم هم مقادير زير ذخيره شده اند
Price
100
10
4



$Code = array( 'Code', 'TIR', 'OIL', 'SPK' );
$Description = array( 'Description', 'Tires', 'Oil', 'Spark Plugs' );
$Price = array( 'Price', 100, 10, 4 );


حالا مي خوام يه آرايه ي دو بعدي مثل يه جدول بسازم به نام Product كه داراي سه ستون باشه كه عنوان ستون هاي اين آرايه ي جديد مقادير اول هر كدام از آرايه هاي بالايي باشند.
مثلاً عنوان ستون اول Code باشه. عنوان ستون دوم Description باشه و عنوان ستون سوم هم Price باشه.

حالا چه طور مي تونم اين سه آرايه را با هم ادغام كنم و يك آرايه ي جديد دو بعدي بسازم با سه ستون و چهار رديف. به طوري كه بشه با توجه به عنوان هر ستون به مقادير مورد نظر در ركورد مورد نظر دسترسي پيدا كرد؟ مثلاً با استفاده از كد زير عدد 10 كه در ستون مربوط به قيمت است و در ركورد دوم قرار دارد را به نمايش گذاشت.



echo $Product[1]['Price']; //--> نمايش عدد 10 از ركورد دوم و ستون سوم


در پايان بايد ذكر كنم كه با استفاده از كد زير مي تونم يك آرايه ي دو بعدي بسازم. منتهاي مراتب طرح اين سؤال به اين خاطر است كه چگونگي ادغام آرايه هاي يك بعدي به يك ديگر و ساخت يك آرايه ي دو بعدي را ياد بگيرم. چون در برنامه اي كه نوشته ام بايد مقادير در آرايه هاي يك بعدي ذخيره بشن و در پايان آن ها را به يك آرايه ي دو بعدي تبديل كنم.



$Product = array( array( 'Code' => 'TIR',
'Description' => 'Tires',
'Price' => 100
),

array( 'Code' => 'OIL',
'Description' => 'Oil',
'Price' => 10
),

array( 'Code' => 'SPK',
'Description' => 'Spark Plugs',
'Price' => 4
),
);


ممنون از پاسخي كه به اين سؤالم مي دهيد

sama01
پنج شنبه 15 مهر 1389, 11:14 صبح
$Code = array( 'Code', 'TIR', 'OIL', 'SPK' );
$Description = array( 'Description', 'Tires', 'Oil', 'Spark Plugs' );
$Price = array( 'Price', 100, 10, 4 );

$Product = array();

for($i=1; $i<count($Code); $i++){
$Product[$i-1][$Code[0]] = $Code[$i];
$Product[$i-1][$Description[0]] = $Description[$i];
$Product[$i-1][$Price[0]] = $Price[$i];
}

echo $Product[1]['Price']; //10