w3resource

PHP Array Exercises : Get an array with the first key and value

PHP Array: Exercise-47 with Solution

Write a PHP function to get an array with the first key and value.

Sample Solution:

PHP Code:

<?php
function array_1st_element($my_array)
{
  list($k) = array_keys($my_array);
  $result  = array($k=>$my_array[$k]);
  unset($my_array[$k]);
  return $result;
}
$colors = array('c1'=>'Red','c2'=>'Green','c3'=>'Black');
print_r(array_1st_element($colors));
?>

Sample Output:

Array                                                       
(                                                           
    [c1] => Red                                             
)

Flowchart:

Flowchart: PHP - Get an array with the first key and value

PHP Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a PHP function to check whether all array values are strings or not.
Next: Write a PHP function to set union of two arrays.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Share this Tutorial / Exercise on : Facebook and Twitter

PHP: Tips of the Day

PHP: Can I try/catch a warning?

Set and restore error handler

One possibility is to set your own error handler before the call and restore the previous error handler later with restore_error_handler().

set_error_handler(function() { /* ignore errors */ });
dns_get_record();
restore_error_handler();

You could build on this idea and write a re-usable error handler that logs the errors for you.

set_error_handler([$logger, 'onSilencedError']);
dns_get_record();
restore_error_handler();

Turning errors into exceptions

You can use set_error_handler() and the ErrorException class to turn all php errors into exceptions.

set_error_handler(function($errno, $errstr, $errfile, $errline, $errcontext) {
    // error was suppressed with the @-operator
    if (0 === error_reporting()) {
        return false;
    }

    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
});

try {
    dns_get_record();
} catch (ErrorException $e) {
    // ...
}

The important thing to note when using your own error handler is that it will bypass the error_reporting setting and pass all errors (notices, warnings, etc.) to your error handler. You can set a secondargument on set_error_handler() to define which error types you want to receive, or access the current setting using ... = error_reporting() inside the error handler.

Suppressing the warning

Another possibility is to suppress the call with the @ operator and check the return value of dns_get_record() afterwards. But I'd advise against this as errors/warnings are triggered to be handled, not to be suppressed.

Ref : https://bit.ly/36a5tyb