"Cannot use string offset as an array" error
arrays, php
Solution
My bet is that either
- $entries is not an array
- one or multiple of `$e` are not arrays
try
foreach ( $entries as $e ) {
$info = array(); // added to see if pre-declaration helps
if (is_array($e)) // only go on if $e is actually an array
$info = array( $e[ 'title' ],
$e[ 'gd:when attr' ][ 'startTime' ],
$e[ 'gd:where attr' ][ 'valueString' ],
$e[ 'content' ] );
}
If you want to do it really properly, you check for each key of `$e` ("startTime" and so on) first using `isset()` or `array_key_exists()`.
Problem
Can't figure what is wrong here. Read what folks are saying here: http://informationideas.com/news/2006/06/14/fatal-error-cannot-use-string-offset-as-an-array-in/ and here: Cannot use string offset as an array in php I have `print_r()`-ed the actual values in `$entries` (coming from Google Calendar) and they are all fine. ``` foreach ( $entries as $e ) { $info = array(); // added to see if pre-declaration helps $info = array( $e[ 'title' ], $e[ 'gd:when attr' ][ 'startTime' ], $e[ 'gd:where attr' ][ 'valueString' ], $e[ 'content' ] ); } ``` What am I doing wrong? Dump of `$entries`: ``` Array ( [id] => http://www.google.com/calendar/feeds/u879een48cs77cp2rv7s05f5ps%40group.calendar.google.com/public/full/aev64a1c7kou9ige6n2mulm8mo [published] => 2009-12-31T15:34:47.000Z [updated] => 2009-12-31T15:34:58.000Z [category attr] => Array ( [scheme] => http://schemas.google.com/g/2005#kind [term] => http://schemas.google.com/g/2005#event ) [category] => [title attr] => Array ( [type] => text ) [title] => Happy New Year! [content attr] => Array ( [type] => text ) [content] => [link] => Array ( [0 attr] => Array ( [rel] => alternate [type] => text/html [href] => http://www.google.com/calendar/event?eid=YWV2NjRhMWM3a291OWlnZTZuMm11bG04bW8gdTg3OWVlbjQ4Y3M3N2NwMnJ2N3MwNWY1cHNAZw [title] => alternate ) [0] => [1 attr] => Array ( [rel] => self [type] => application/atom+xml [href] => http://www.google.com/calendar/feeds/u879een48cs77cp2rv7s05f5ps%40group.calendar.google.com/public/full/aev64a1c7kou9ige6n2mulm8mo ) [1] => ) [author] => Array ( [name] => New Orleans Parents Guide to Public Schools ) [gd:comments] => Array ( [gd:feedLink attr] => Array ( [href] => http://www.google.com/calendar/feeds/u879een48cs77cp2rv7s05f5ps%40group.calendar.google.com/public/full/aev64a1c7kou9ige6n2mulm8mo/comments ) [gd:feedLink] => ) [gd:eventStatus attr] => Array ( [value] => http://schemas.google.com/g/2005#event.confirmed ) [gd:eventStatus] => [gd:where attr] => Array ( [valueString] => ) [gd:where] => [gd:who attr] => Array ( [email] => u879een48cs77cp2rv7s05f5ps@group.calendar.google.com [rel] => http://schemas.google.com/g/2005#event.organizer [valueString] => New Orleans Parents Guide to Public Schools ) [gd:who] => [gd:when attr] => Array ( [endTime] => 2010-01-01 [startTime] => 2009-12-31 ) [gd:when] => [gd:transparency attr] => Array ( [value] => http://schemas.google.com/g/2005#event.opaque ) [gd:transparency] => [gCal:anyoneCanAddSelf attr] => Array ( [value] => false ) [gCal:anyoneCanAddSelf] => [gCal:guestsCanInviteOthers attr] => Array ( [value] => true ) [gCal:guestsCanInviteOthers] => [gCal:guestsCanModify attr] => Array ( [value] => false ) [gCal:guestsCanModify] => [gCal:guestsCanSeeGuests attr] => Array ( [value] => true ) [gCal:guestsCanSeeGuests] => [gCal:sequence attr] => Array ( [value] => 2 ) [gCal:sequence] => [gCal:uid attr] => Array ( [value] => aev64a1c7kou9ige6n2mulm8mo@google.com ) [gCal:uid] => ) ```