Reputation: 514
I have two arrays:
Object
protected 'value' =>
array (size=4)
0 =>
object(stdClass)[668]
public 'info' => string 'info' (length=10)
public 'info ' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
1 =>
object(stdClass)[667]
public 'info' => string 'info' (length=10)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
2 =>
object(stdClass)[673]
public 'info' => string 'info' (length=10)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
3 =>
object(stdClass)[671]
public 'info' => string 'info' (length=10)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
And the other is:
Object
protected 'value' =>
array (size=4)
0 => string '2016-11-23' (length=10)
1 => string '2016-11-24' (length=10)
2 => string '2016-11-25' (length=10)
3 => string '2016-11-26' (length=10)
What I want, is to somehow merge those arrays in a way, that keys for arrays in a multidimensional array will equal the values from the second array, like this:
Object
protected 'value' =>
array (size=4)
2016-11-23 =>
object(stdClass)[668]
public 'info' => string 'info' (length=10)
public 'info ' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
2016-11-24 =>
object(stdClass)[667]
public 'info' => string 'info' (length=10)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
2016-11-25 =>
object(stdClass)[673]
public 'info' => string 'info' (length=10)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
2016-11-26 =>
object(stdClass)[671]
public 'info' => string 'info' (length=10)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
public 'info' => string 'info' (length=1)
How can I do that?
Upvotes: 0
Views: 40
Reputation: 15131
You could use array_combine. I'd tried to simulate with your input data:
$obj = new stdClass;
$obj->p1 =
$obj->p2 =
$obj->p3 =
$obj->p4 = 'info';
$valueObject = new stdClass;
$valueObject->value = [clone $obj, clone $obj, clone $obj, clone $obj,];
$keyObject = new stdClass;
$keyObject->value = ['2016-11-23','2016-11-24','2016-11-25','2016-11-26',];
$outputObject = new stdClass;
$outputObject->value = array_combine($keyObject->value, $valueObject->value);
var_dump($outputObject);
Output
object(stdClass)#8 (1) {
["value"]=>
array(4) {
["2016-11-23"]=>
object(stdClass)#3 (4) {
["p4"]=>
string(4) "info"
["p3"]=>
string(4) "info"
["p2"]=>
string(4) "info"
["p1"]=>
string(4) "info"
}
["2016-11-24"]=>
object(stdClass)#4 (4) {
["p4"]=>
string(4) "info"
["p3"]=>
string(4) "info"
["p2"]=>
string(4) "info"
["p1"]=>
string(4) "info"
}
["2016-11-25"]=>
object(stdClass)#5 (4) {
["p4"]=>
string(4) "info"
["p3"]=>
string(4) "info"
["p2"]=>
string(4) "info"
["p1"]=>
string(4) "info"
}
["2016-11-26"]=>
object(stdClass)#6 (4) {
["p4"]=>
string(4) "info"
["p3"]=>
string(4) "info"
["p2"]=>
string(4) "info"
["p1"]=>
string(4) "info"
}
}
}
Upvotes: 1