?
Solved

Problem with Merge 2 array on Key

Posted on 2009-04-11
9
Medium Priority
?
411 Views
Last Modified: 2012-08-13
Hi Experts,

I have 2 huge array with the same lenght. I need your help to merge them become 1 array on key

For Example:
====Array 1====
Array
(
      [1] => 111 // my value1
      [2] => 222 // my value2
);            

====Array 2====
Array
(
      [1] => abcde.jpg //image name1
      [2] => 12345.jpg //image name2
);

And I need to merge them base on the key number to become:

====Array 3====
Array
(
      [1] => Array
            (
                  [0] => 111 // my value1
                  [1] => abcde.jpg //image name1
            );
      [2] => Array
            (
                  [0] => 222 // my value2
                  [1] => 12345.jpg //image name2
            );
);

I have the code below but it got something wrong, so it won't run.
Can anyone help me to fix it ?
<?
if ($_POST['action']=='upload')
	{
	$a = $_POST[position];
		/*Example print_r($a)	
		Array
		(
			[1] => 111
			[2] => 222
		);		
		*/
		
	$b = $_POST[imgfile];
		/*Example print_r($b)	
		Array
		(
			[1] => abcde.jpg
			[2] => 12345.jpg
		);
		*/
 
		$c = array();	
		foreach ($count='0'; $count < sizeof($a); $count++)
		{
		  $c[$count] = array($a[$count]$b[$count]);
		}
		
		echo "<pre>";
		print_r ($c); die();
	}	
?>

Open in new window

0
Comment
Question by:nguyenhoan
[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
  • 5
  • 4
9 Comments
 
LVL 3

Expert Comment

by:Ludger Peters
ID: 24121572
you can add 2 arrays like the following
<?php
 
/**
 * @author ludjer
 */
$a = array("Value 1","Value 2");
$b = array("Value a1","Value a2");
$c = array($a,$b);
 
echo "<pre>";
print_r ($c); 
die();    
?>

Open in new window

0
 
LVL 3

Expert Comment

by:Ludger Peters
ID: 24121601
in your code your error is from foreach, the command you meant to use is
for($count='0'; $count < sizeof($a); $count++) and i think your code would work.

i also showed how your code should be


example of foreach and for loops
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    echo $value."<br \>"; // this will output 1<br \>2<br \>3<br \>4 
    $value = $value * 2;
    echo $value."<br \>"; // this will output 2<br \>4<br \>6<br \>8 
}
// $arr is now array(2, 4, 6, 8)
 
//you where ment to use a for loop command
for ($i = 1; $i <= 10; $i++) {
    echo $i;//this will echo 12345678910
}
?>
 
this is how your code should be
<?
if ($_POST['action']=='upload')
   {
        $a = $_POST[position];
        $b = $_POST[imgfile];
        $c = array($a,$b);   
        echo "<pre>";
        print_r ($c); die();
    }       
?>

Open in new window

0
 

Author Comment

by:nguyenhoan
ID: 24121603
Oh that's not what I want, sorry =[
0
Will your db performance match your db growth?

In Percona’s white paper “Performance at Scale: Keeping Your Database on Its Toes,” we take a high-level approach to what you need to think about when planning for database scalability.

 
LVL 3

Accepted Solution

by:
Ludger Peters earned 1200 total points
ID: 24121630
well then could you tell me exactly what you need to do, do you want to use foreach loop or a for loop

ill try make 2 versions one with for loop and other with foreach loop

hope this works
forloop
<?PHP
if ($_POST['action']=='upload')
        {
        $a = $_POST[position];
                /*Example print_r($a)   
                Array
                (
                        [1] => 111
                        [2] => 222
                );              
                */
                
        $b = $_POST[imgfile];
                /*Example print_r($b)   
                Array
                (
                        [1] => abcde.jpg
                        [2] => 12345.jpg
                );
                */
		$c = array();   
		for($count= 0 ; $count <= sizeof($a); $count++)
		{
		  $c[$count] = array($a[$count],$b[$count]);
		}
        echo "<pre>";
        print_r ($c); die();
        }       
?>
for each loop
<?PHP
if ($_POST['action']=='upload')
        {
        $a = $_POST[position];
                /*Example print_r($a)   
                Array
                (
                        [1] => 111
                        [2] => 222
                );              
                */
                
        $b = $_POST[imgfile];
                /*Example print_r($b)   
                Array
                (
                        [1] => abcde.jpg
                        [2] => 12345.jpg
                );
                */
		$c = array();
		$counter = 1;
		foreach($a as $variable)
		{
		  $c[$counter] = array($a[$counter],$b[$counter]);
		  $counter++;
		}
        echo "<pre>";
        print_r ($c); die();
        }       
?>
?>

Open in new window

0
 
LVL 3

Expert Comment

by:Ludger Peters
ID: 24121643
woops just realized 2 problems
a)line 23
for($count= 0 ; $count <= sizeof($a); $count++)
changed to
for($count= 1; $count <= sizeof($a); $count++)

b)line 63
remove ?> its not needed
0
 

Author Comment

by:nguyenhoan
ID: 24121650
Wow, they are both worth, THANKYOU ALOT, MASTER LUDJER !!!
0
 

Author Closing Comment

by:nguyenhoan
ID: 31569156
Perfect and Thankyou !
0
 

Author Comment

by:nguyenhoan
ID: 24121701
Oh, Ludjer, if you can, please countinue helping me in this question:
http://www.experts-exchange.com/index.jsp?qid=24314398 

Its the Part2 of this question ^^
Thankyou.
0

Featured Post

The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

Question has a verified solution.

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

This article discusses how to create an extensible mechanism for linked drop downs.
In threads here at EE, each comment has a unique Identifier (ID). It is easy to get the full path for an ID via the right-click context menu. However, we often want to post a short link within a thread rather than the full link. This article shows a…
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 …
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.
Suggested Courses

718 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