Reputation: 487
I insert data array into database like this :
$value['gallery_data'] = array();
$value['gallery_data'] = serialize((array(array_values("name"), array_values("url"), array_values("type")))); // LINE 843
In database:
a:3:{i:0;N;i:1;N;i:2;N;}
I see this error in action:
Warning: array_values() expects parameter 1 to be array, string given in C:\xampp\htdocs\user\modules\editnews.php on line 843
Warning: array_values() expects parameter 1 to be array, string given in C:\xampp\htdocs\user\modules\editnews.php on line 843
Warning: array_values() expects parameter 1 to be array, string given in C:\xampp\htdocs\user\modules\editnews.php on line 843
EDIT:
I need to insert this format for multiple array in database:
a:3:{i:0;a:4:{i:0;s:48:"uploads/media/galleries/nature/butterfly_001.jpg";i:1;s:43:"uploads/media/galleries/nature/IMG_4181.jpg";i:2;s:43:"uploads/media/galleries/nature/swan_002.jpg";i:3;s:45:"uploads/media/galleries/nature/zzmed copy.jpg";}i:1;a:4:{i:0;s:19:"test_title";i:1;s:20:"test_title1";i:2;s:25:"test_title2";i:3;s:24:"677777777777777777777777";}i:2;a:4:{i:0;s:19:"test_alt";i:1;s:21:"test_alt1";i:2;s:21:"test_alt2";i:3;s:26:"77888888888888888888888888";}}
how do can i fix this ?
Upvotes: 1
Views: 12028
Reputation: 23816
No need of array_value()
here
Reason
print_r(array("name", "url", "type"));
//output
Array ( [0] => name [1] => url [2] => type )
//output
print_r(array_values(array("name", "url", "type")));
Array ( [0] => name [1] => url [2] => type )
Try:
$value['gallery_data'] = serialize(array("name", "url", "type")); // LINE 843
Passing multiple array in single array like this:
Try:
$value['gallery_data'] = array();
echo $value['gallery_data'] = serialize(array(
array(
"uploads/media/galleries/nature/butterfly_001.jpg",
"uploads/media/galleries/nature/IMG_4181.jpg",
"uploads/media/galleries/nature/swan_002.jpg",
"uploads/media/galleries/nature/zzmed copy.jpg",
),
array("test_title",
"test_title1",
"test_title2",
"test_title3"
),
array("test_alt",
"test_alt1",
"test_alt2",
"test_alt3"
)
)); // LINE 843
Output as you want:
a:3:{i:0;a:4:{i:0;s:48:"uploads/media/galleries/nature/butterfly_001.jpg";i:1;s:43:"uploads/media/galleries/nature/IMG_4181.jpg";i:2;s:43:"uploads/media/galleries/nature/swan_002.jpg";i:3;s:45:"uploads/media/galleries/nature/zzmed copy.jpg";}i:1;a:4:{i:0;s:10:"test_title";i:1;s:11:"test_title1";i:2;s:11:"test_title2";i:3;s:11:"test_title3";}i:2;a:4:{i:0;s:8:"test_alt";i:1;s:9:"test_alt1";i:2;s:9:"test_alt2";i:3;s:9:"test_alt3";}}
Upvotes: 1
Reputation: 8809
I feel you are using array_values
before array so try something like this
$value['gallery_data'] = serialize(array_values(array("key1" => "name", "key2" => "url", "key3" => "type")));
or like this
$value['gallery_data'] = serialize(array("name" , "url", "type")); // LINE 843
Upvotes: 1
Reputation: 5633
You're passing a string to the array_values
function instead of an array.
So replace array_values("name")
with array_values($someArray)
for example.
Source: http://php.net/manual/en/function.array-values.php
Upvotes: 0