?
Solved

How to join the following array together

Posted on 2008-06-12
7
Medium Priority
?
185 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
  • 2
7 Comments
 
LVL 2

Accepted Solution

by:
jml948 earned 800 total points
ID: 21767001
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 200 total points
ID: 21767054
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
ID: 21767083
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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 2

Expert Comment

by:jml948
ID: 21767101
yes which can also be achieved by doing:

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

as Xorlev stated.
0
 

Author Comment

by:firekiller15
ID: 21767233
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
ID: 21767257
when i print_r($this->GetAMOUNTReturn) in join all i can read the value.. why?
0
 
LVL 3

Expert Comment

by:Xorlev
ID: 21767317
"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

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article discusses four methods for overlaying images in a container on a web page
There are times when I have encountered the need to decompress a response from a PHP request. This is how it's done, but you must have control of the request and you can set the Accept-Encoding header.
The viewer will learn how to count occurrences of each item in an array.
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …
Suggested Courses

743 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