Solved

How to join the following array together

Posted on 2008-06-12
7
179 Views
Last Modified: 2008-06-15
PHP
How to join the following array together

i have 3 array
$arrayA = array('a','b','c');
$arrayB = array(2,3,6,5,7,8);
$arrayc = array('d','e','f','g');

i use this method at first( in code snippet

but i realize that this method only can be use when array ABC is in the same column

hence my column for 3 array are different how to do it?

the correct output should be]
"a"|"2"|"d"|"b"|"3"|"e"|"c"|"6"|"f"|""|"5"|"g"|""|"7"|""|""|"8"|""|
 

$arrayA = array('a','b','c');

$arrayB = array(2,3,6,5,7,8);

$arrayc = array('d','e','f','g');

foreach($arrayA as $i => $datas)

{

$data1 = "$datas | {$arrayB[$i]} | {$arrayC[$i]}   |";

}

print_r($data1 );

Open in new window

0
Comment
Question by:firekiller15
  • 3
  • 2
  • 2
7 Comments
 
LVL 2

Accepted Solution

by:
jml948 earned 200 total points
Comment Utility
Here's how i would do it
<?

$arrayA = array('a','b','c');

$arrayB = array(2,3,6,5,7,8);

$arrayC = array('d','e','f','g');

$lenA = count($arrayA);

$lenB = count($arrayB);

$lenC = count($arrayC);
 

if($lenA > $lenB)

        $count = $lenA;

else

        $count = $lenB;
 

if($count < $lenC)

        $count = $lenC;
 

for($i = 0; $i < $count; $i++){

        $data1 .= "\"$arrayA[$i]\"|\"$arrayB[$i]\"|\"$arrayC[$i]\"|";

}

print_r($data1);

?>

Open in new window

0
 
LVL 3

Assisted Solution

by:Xorlev
Xorlev earned 50 total points
Comment Utility
Exact output as above.
<?php

$arrayA = array('a','b','c');

$arrayB = array(2,3,6,5,7,8);

$arrayC = array('d','e','f','g');
 

$count = max(count($arrayA), count($arrayB), count($arrayC));
 

for ($i = 0; $i < $count; $i++) {

        $data .= '"' . $arrayA[$i] . '"|"' . $arrayB[$i] . '"|"' . $arrayC[$i] . '"|';

}
 

echo $data; // "a"|"2"|"d"|"b"|"3"|"e"|"c"|"6"|"f"|""|"5"|"g"|""|"7"|""|""|"8"|""|

?>

Open in new window

0
 

Author Comment

by:firekiller15
Comment Utility
jsut want to clarify with you
in code above u use if-else statement to find which array has the largest element then use the largest element to compare with other array?
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 2

Expert Comment

by:jml948
Comment Utility
yes which can also be achieved by doing:

$count = max(count($arrayA), count($arrayB), count($arrayC));

as Xorlev stated.
0
 

Author Comment

by:firekiller15
Comment Utility
How about if my array is from other function for example in code snippet
output i received is
| Array " | Array " | Array " | Array " | Array " | Array " | Array " | Array " | Array " | Array " | Array " | Array " | Array "

why like that
fucntion a()

$query = "SELECT AMOUNT

           FROM  AMOUNTTABLE;

          

  

  $result = mysql_query($query);

  

  i=0;  

  while($row = mysql_fetch_array($result))

	 {

      $this->GetAMOUNTReturn[$i] = '"'.$row['AMOUNT'].'"'; 

	  $i++;

	 }

 }
 

function b()
 

  $query = "SELECT ADDRESS1,ADDRESS2,ADDRESS3,ADDRESS4,CITY

           FROM ADDRESSTABLE";   

	   

  $result = mysql_query($query);

  

 

 while($row = mysql_fetch_array($result))

	 {

      $this->GetAddressReturn[$i] = array('"'.$row['ADDRESS1'].'"|"'.$row['ADDRESS2'].'"|"'.$row['ADDRESS3'].'"|"'.$row['ADDRESS4'].'"|"'.$row['CITY'].'"'); 

	  $i++;

	 }

 }
 

function joinAll()

$lenA = count($this->GetAMOUNTReturn);

$lenB = count($this->GetAddressReturn);
 

 

if($lenA > $lenB)

        $count = $lenA;

else

        $count = $lenB;

 

for($i = 0; $i < $count; $i++){

        $data1 .= "\"$this->GetAMOUNTReturn[$i]\"|\"$this->GetAddressReturn[$i]\"";

}

print_r($data1);

?>

Open in new window

0
 

Author Comment

by:firekiller15
Comment Utility
when i print_r($this->GetAMOUNTReturn) in join all i can read the value.. why?
0
 
LVL 3

Expert Comment

by:Xorlev
Comment Utility
"when i print_r($this->GetAMOUNTReturn) in join all i can read the value.. why?"

In the second function you're setting an array with an array.

this->GetAddressReturn[$i] = array('"'.$row['ADDRESS1'].'"|"'.$row['ADDRESS2'].'"|"'.$row['ADDRESS3'].'"|"'.$row['ADDRESS4'].'"|"'.$row['CITY'].'"');

make it:
this->GetAddressReturn[$i] = '"'.$row['ADDRESS1'].'"|"'.$row['ADDRESS2'].'"|"'.$row['ADDRESS3'].'"|"'.$row['ADDRESS4'].'"|"'.$row['CITY'].'"'; 

Open in new window

0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Both Easy and Powerful How easy is PHP? http://lmgtfy.com?q=how+easy+is+php (http://lmgtfy.com?q=how+easy+is+php)  Very easy.  It has been described as "a programming language even my grandmother can use." How powerful is PHP?  http://en.wikiped…
Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit (http://en.wikipedia.org/wiki/PHPUnit) and similar technologies have enjoyed wide adoption, making it possib…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now